분류 전체보기
[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}
LoS.Rubiya.kr - gremlin write up
gremlin 이라는 문제에 들어가보면 이러한 php 코드가 나온다. 대충 코드를 분석해보자면 기본적인 database 를 어택할 수 있는 키워드들은 막아놓은 상태이고, 파라미터로 id와 pw를 GET방식으로 입력받아 Query 를 작성하여, 만약 그 쿼리에 입력된 id값이 있다면 solve("gremlin") 함수를 실행시켜준다. 이 함수를 실행시키면 문제가 풀릴 것이라 생각하고 문제를 풀어보았다. 이 문제는 기본적인 SQL Injection 문제이다. 따라서 간단한 쿼리를 작성해보았다. ?id=admin' or '1==1' %23 # id가 admin이거나 1이 1과 같으면 참(%23 : #으로, 뒤 쿼리 내용을 주석처리) # 무조건 같게 만드는 식이므로 결과적으로 참이 나와 쿼리문이 실행된다. 그리..
HackCTF Web - / write up
문제에 제시되어있는 URL 주소로 접속하게되면 아래와 같은 화면을 볼 수 있다. Hidden Flag라는 텍스트와 함께 robot 사진이 제시되어있다. 여기서 게싱을 해야하는 문제이다 robot 이미지 주소를 봐도 http://www.irobotnews.com, 저 사이트는 문제사이트가 아닌 듯 하여 고민을 해보았다. 혹시 robots.txt를 말하는 것인가 의문이 들어 robots.txt 를 열어보았다. 더보기 robots.txt란, 원하는 페이지를 노출되도록, 혹은 노출되지 않도록 설정할 수 있는 설정 텍스트파일이다. http://ctf.j0n9hyun.xyz:2020/robots.txt robots.txt 파일에선 robot_flag 로 향하는 경로가 노출이 되지 않도록 설정하고 있다. 노출은 되지..