writeup
[CTF] 2021 Layer7 CTF͏͏ WriteUp
2021.11.20(토) 09:00:00 ~ 2021.11.20(토) 23:59:59 User: 9ucc1 (Point: 3333) Place: 5th (고등부: 4th) 다른 분야 공부가 시급하네요. [WEB] handmade - 100 📌 Summary 파일 읽어오는 서비스를 이용해서 flag 파일을 읽으면 되는 간단한 문제입니다. 📌 Analysis 페이지 디자인은 아래와 같습니다. 소스코드 구조는 아래와 같습니다. 제공된 소스코드 중, app.py에 아래와 같은 함수가 존재합니다. def make_response(req_data): try: method = req_data['method'] req_uri = req_data['uri'].path qstring = req_data['uri'].que..
[CTF] 제 2회 JBU-CTF WriteUp - WEB 문제
팀명 : Cbar=True, 닉네임 : w3bh4ck3r 순위 : 4위 36시간동안 열심히 풀었지만, 플래그 키퍼로 인해 4위를 하게되었다. [WEB] Fight_The_Aliens[100] : scpCTF{E4r7hi4n_N3v3r_L053} 아래 사진과 같이 마우스 커서를 외계인이 따라다니는 문제이다. 외계인 사진때문에 달이 클릭되지 않는다. 외계인 사진을 찾아서 지워버렸다. [WEB] Command Injection[100] : scpCTF{Y0u_fol1ow3d_w3ll} 문제사이트에 들어가 입력하라는 대로 입력해보았다. 친절하게 설명해주신다. 소스코드까지 보여주신다. ; ls -al * 입력해서 현재 위치의 모든 폴더를 열어보았다. 보아하니 ./a/flag.txt 파일이 있다. cat 명령여를 ..
[CTF] Layer7 & Trust CTF WriteUp
Layer7 & Trust CTF 더보기 순위: 8위 Misc - Sanity Check [50] nc 명령어를 통해 주어진 서버로 접속해보았다. FLAG : L7TR{this_is_nc(wikipedia.org/wiki/Netcat)} Web - Unexploitable [50] 문제에 제시된 URL로 접속해보았다. 해당 URL에서 저 문구 하나밖에 발견할 수가 없어서 당황 좀 했다. app.py를 열어보니 from flask import Flask app = Flask(__name__) @app.route('/') def main(): return 'sorry this challenge is unexploitable zzlol' if __name__ == '__main__': app.run(debug..
HackCTF Web - 보물 write up
문제에 제시된 사이트 접속 페이지에 제시된 버튼을 눌러보자 page1 버튼을 누르니 page 파라미터를 통해 1이란 값을 받는 것을 알 수 있다 페이지 숫자 중에 비밀이 있고, 그곳에 보물을 숨겨놓았다고 한다 page1 버튼을 눌렀을 때 변한 것이 하나 더 있다. 암호화(?) 되어있는 듯한 문자열이 출력되었다. 이를 통해 페이지 파라미터로 어떤 특정 수를 전달해주면 Flag가 나올 것이라 예측하고 풀어볼 수 있다. python 코드를 짜서 브루트포싱 공격(무차별 대입 공격)을 해보자 HackCTF 사이트에서의 Flag 형식은 HackCTF{~~~} 이기 때문에 페이지 수를 1씩 증가시키면서 요청을 보내고 만약 Flag가 바로 출력이 된다면 페이지 번호를 출력하고 반복문을 종료하는 코드를 작성했다. imp..
Los.Rubiya.kr - goblin write up
문제의 소스코드를 분석해보자 우리가 할 수 있는 건 no 파라미터에 값을 전송하는 것이다. 하지만 preg_match 함수(문자열 체크 함수)를 살펴보면 '(싱글쿼터) 와 "(더블쿼터), `(백쿼터) 를 막고있는 것을 확인할 수 있다. 즉, 우린 쿼터 없이 문제를 풀어야 한다. no 파라미터를 보면 현재 숫자로 입력받는 것을 알 수 있다. 숫자로 입력을 받는 경우, '(싱글쿼터) 없이 공백으로 no에 들어가는 값을 조절할 수 있다. ?no=1 or id=0x61646d696e %23 no 엔 아무 숫자나 넣고, id가 admin이여야 solve 함수가 실행되므로 id엔 admin 문자열을 넣어줘야 한다. 하지만 id=0x61646d696e 라는 이상한 값을 집어넣어줬다. 이 값은16진수로, string ..
HackCTF Web - Button write up
문제 사이트로 들어가보자. 버튼을 눌러서 플래그를 출력시켜야 한다. 힌트를 얻을 수 없어, F12 관리자 개발도구를 통해 분석해보았다. 아무 힌트도 얻을 수 없었다. 그래서 게싱을 하기로 마음먹었다. Button의 value 값을 admin이라고 바꿔보았다. 결과는 아무것도 뜨지 않았다. 설마 해서 버튼의 value 값을 flag라고 바꾼 후 버튼을 클릭해보면 flag를 얻을 수 있다. HackCTF{0k4y...php_c4nn0t_cr34t3_4_butt0n}~~
LoS.Rubiya.kr - cobolt write up
문제 첫 화면에 늘 그랬듯이 php 소스코드가 보인다. 이 소스코드를 분석해보자면 기본적인 공격가능한 문자를 막고있고, query문을 통해 입력받은 id와 pw를 통해 MySQL DB에서 정보를 가져온다. 또, DB에서 가져온 id값이 admin이면 solve("cobolt") 함수를 실행해주고 있다. 그런데 pw를 받는 코드를 자세히 보면 md5() 함수를 통해 암호화하고있다. 즉, 이번문제에선 pw를 사용하지 않고 풀 수 있다는 것이다. id 파라미터를 넘길 때 값을 admin'%23 으로 넘겨주면, id 변수엔 'admin'이란 문자가 담기게 되고, '(싱글쿼터)를 사용함으로써 query문의 싱글쿼터가 닫히게 되고(SQL injection의 기본적인 escape 방식), id 변수에 들어갈 값은 여..
HackCTF Web - Hidden write up
문제에 제시된 URL로 접속해보면 아래와 같은 페이지가 나온다 5번 파일에 플래그가 있다고 한다. 하지만 버튼 중에는 5번이 없다. 1번 버튼을 눌러보니, URL 뒤에 ?id=1 이라는 주소가 뒤에 붙었다. 그리고 alert창도 함께 떴다. id의 값을 5로 바꿔주면 풀릴 것 같아서 URL 뒤에 ?id=5를 붙여서 요청을 보내보았다. http://ctf.j0n9hyun.xyz:2023/?id=5 Flag is HackCTF{idx_is_so_s1m3le_ctf}