webhacking.kr old 33번 문제풀이(Writeup)
1
문제를 들어가면 위와 같이 출력된다. 33-1을 보니 뭔가 1도 있고 2도 있을 것으로 보인다. 코드를 확인해보자.
?get=hehe이면 Next가 나온다고 한다. 확인해봤다.
Next가 나왔다. 클릭해봤다.
2
lv2.php로 이동했다. 뭔가 흥미로운 문제인 것 같다. 재밌다. 코드를 확인해보자.
이번엔 post 방식으로 post가 hehe이고 post2는 hehe2로 전송해야 한다. Burp Suite로 전송해봤다.
Burp Suite에서 캡처한 후 마우스 우클릭 -> change requests method가 있다. 클릭해서 post 방식으로 바꿔주고 post와 post2를 포함해서 넣어준다.
3
Next가 나왔고 클릭하니 challenge 33-3이 나왔다. 다시 코드를 확인했다.
이번엔 get 메소드로 myip에 ip주소를 넣어야 한다. 그래서 넣었다.
4
또 Next가 나왔다. 레벨업하는 기분이다. 33-4로 들어가서 코드를 확인했다.
password에 md5로 인코딩한 내용을 넣어야 한다. hint 옆에 나오는 시간에 30 정도를 더해서 hash 했다.
https://webhacking.kr/challenge/bonus-6/l4.php?password=F8F34A3137E70A8D65738DD3D5D05B55
바로 다음 단계로 통과했다.
5
5단계이다. 이번엔 get 방식과 post방식과 cookie를 한 번에 보내야 한다.
그래서 한 번에 만들어서 보냈더니 통과했다. 이쯤부터 왜 안 끝나지 싶었다.
6
이번 힌트는 user-agent가 출력된다. 코드를 확인하니 test라는 쿠키에 ip를 md5로 해시해서 넣고, post 방식으로 kk에 http_user_agent를 md5 해시해서 넣으면 된다.
다음 문제로 향하는 NEXT가 나왔다.
7
이번엔 내 IP주소에 들어가는 "."을 빼고 넣으면 된다.
8
바로 코드를 확인하니 ?addr=127.0.0.1이면 된다고 한다. 이제 좀 지루하다.
9
이번엔 97부터 122까지 2씩 더하며 해당하는 아스키코드의 문자를 넣으면 된다. 간단하게 스크립트를 작성했다.
answer=""
for i in range(97,122,2):
answer += chr(i)
print(answer)
acegikmoqsuwy가 답이다. 다음으로 넘어가자.
10
10번 코드를 확인하니, IP를 가지고 이것저것 연산을 한다. 머리나 손으로 하기엔 복잡해서 바로 php 코드로 확인했다. ip에는 내 실제 IP를 넣고 fopen은 하지 않고 echo를 통해 출력했다.
<?php
$ip = "Your IP";
for($i=0;$i<=strlen($ip);$i++) $ip=str_replace($i,ord($i),$ip);
$ip=str_replace(".","",$ip);
$ip=substr($ip,0,10);
$answer = $ip*2;
$answer = $ip/2;
$answer = str_replace(".","",$answer);
echo("answerip/{$answer}_{$ip}.php")
?>
20점 문제치고는 너무 길었다. 그래도 간단한 개념이 계속 반복되어서 복습하기 좋은 문제인 것 같다.
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 37번 문제풀이(Writeup) (0) | 2022.10.19 |
---|---|
webhacking.kr old 36번 문제풀이(Writeup) swap 파일 문제 (0) | 2022.10.18 |
webhacking.kr old 42번 문제풀이(Writeup) (0) | 2022.10.16 |
webhacking.kr old 09번 문제풀이(Writeup) (0) | 2022.10.15 |
webhacking.kr old 11번 문제풀이(Writeup) (0) | 2022.10.14 |