HackCTF 풀이/Web (11) 썸네일형 리스트형 HackCTF - Web - Home 풀이 들어가니 IP를 출력하며 인증되지 않은 IP라고 한다. 위에 힌트로 제공한 "머리말"을 생각해보니 마땅한 키워드가 Header밖에 없었다. ip를 변조할 수 있는 유일한 방법이 X-Forwarded-For였다. Fiddler를 켜고 패킷을 잡았다. 패킷에 X-Forwarded-For를 추가하여주고 Run for completion을 눌러 전송하였다. 그랬더니 127.0.0.1(로컬)로 인식이 되며 플래그가 출력된다. Clear! HackCTF - Web - Input Check 풀이 문제에 들어가니 또 input 하나와 버튼 하나가 기다리고 있다. flag를 쳐보라길래 flag를 쳐서 보냈더니 해킹하지 말란다. Hoxy나 하는 마음에 코드를 보니 주석으로 힌트가 작성되어 있었다. 배열? 배열??? 그렇다면 입력을 배열로 해준다면? 이해를 도와줄 글 : [PHP] strcmp 취약점을 이용한 인증 우회 문제가 풀리게 된다. HackCTF - Web - 마법봉 풀이 문제에 들어가니 초~중학교때 자주봤던 마법봉 짤과 함께 뭔가를 입력할 수 있는 폼이 기다린다. 이 문제에도 친절하게 코드를 확인할 수 있도록 버튼을 마련해 두었다. 위 문제의 코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 HackCTF - Web - Login 풀이 문제를 들어가면 다음과 같은 로그인 폼이 기다리고 있다. 친절하게 코드를 볼 수 있는 버튼을 마련해둔 것을 확인할 수 있다. 저 코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 HackCTF - Web - Read File 풀이 문제를 들어가면 누가 봐도 구글 본뜬 것 같은 페이지가 기다린다. 우리가 주목해야할 부분은 여기. File is flag.php 주소창에 이 command라는 파라미터에 구글 주소가 기록되어있다. 그럼 flag.php도 command를 바꿔서 접속할 수 있지 않을까? 라는 생각에 무조건 바꿔보았다. Read File만이 뜨는것을 볼 수 있다. 이에 가설을 세워볼 수 있다. "flag라는 키워드를 필터링하는게 아닐까?" 가설의 증명을 위해 구글 주소 앞에 flag를 붙여보았다. 붙인 링크 그대로 접속해보니 처음에 봤던 화면과 똑같이 뜬다. 위의 증명을 통해 flag라는 키워드를 필터링한다는 것을 알 수 있게 되었다. 따라서 나는 이를 우회하기 위해 flag라는 단어가 필터링되어 없어져도 flag.php가 .. HackCTF - Web - 보물 풀이 들어가니 왠 상자와 버튼 3개가 보이고 어딘가에 숨겨뒀다고 한다. 우선 아무 버튼이나 눌러보니 왠 랜덤한 해쉬로 보이는 값들이 나온다. 이걸 일일히 해볼순 없으니 파이썬 requests를 이용하여 간단하게 코드를 작성해 풀었다. 한번쓰고 더이상 안쓸코드라 대충 짰다. 1 2 3 4 5 6 7 8 9 10 11 12 13 import requests URL = "http://ctf.j0n9hyun.xyz:2025/?page=" Init = "http://ctf.j0n9hyun.xyz:2025/?page=" count = 0 while 1: URL += str(count) response = requests.get(URL) if 'HackCTF{' in response.text: print(response... HackCTF - Web - Hash 풀이 이 문제를 들어가면 왠 부트스트랩으로 만든 삘이 나는 사이트가 나타난다. 아무 값이나 넣고 OK를 누르면 코드가 나온다 코드를 분석해보자. 1 2 3 4 5 6 7 8 9 10 11 12 Colored by Color Scripter cs 240610708을 md5로 암호화한 값과 비교했을 때 같으면 플래그를 출력해준다 한다. 따라서 우리는 240610708를 md5로 암호화한 값인 0e462097431906509019562988736854를 입력해주자. 입력하고 OK 버튼을 누르면 플래그가 나오게 된다. HackCTF - Web - Button 풀이 버튼을 눌러서 플래그를 출력하라 한다. 근데 눌러도 아무런 반응이 없다. 이 때 의심해볼 수 있는것은 버튼에 부여된 value값. button을 우리가 원하는 flag로 바꿔보자. 그리고 눌러보니 답이 나왔다. 이전 1 2 다음