PHP 언어를 공부하고 있는 김에 WEBHACKING.KR-PHP 문제를 풀어보기로 하였다.
이 문제는 여러 단계로 나눠져 있어서 약간 복잡할 수 있다.
1단계)
GET 방식이므로 URL에 get=hehe 로 넘겨주면 된다.
2단계)
post 방식으로 값을 전달받고 있으므로, html form을 하나 만들어 주도록 하자. 두 post변수와 post2값이 각각 hehe와 hehe2이면 될것 같다.
만들어진 폼에 hehe와 hehe2를 넘겨주면 다음 단계로 간다.
3단계)
자신의 ip주소를 get 방식으로 url에 넘겨주자.
4단계)
페이지에 hint: 라고 time이 나와있는데, 새로고침을 계속 해보니 계속 숫자가 늘어나는 것을 확인할 수 있었다.
따라서 이것은 현재 시간이라는 것을 유추할 수 있다. 따라서 좀더 앞선 시간을 설정하여 md5 암호화 해주고,
get방식으로 전달해준다. 시간이 약간 소요되는 문제.
5단계)
get, post, cookie 까지 전부 설정해줘야 통과할 수 있는 문제이다.
값은 문제가 안되므로 차근차근 php코드의 조건을 충족해주면 된다.
1) editthiscookie 로 imcookie라는 제목의 쿠키를 구워준다.
2) html에서 impost라는 이름을 갖고있는 form을 만들고, 대신 action을 넘길 때 md555.php?imget=1로 get방식까지
한번에 넘겨준다.
6단계)
아직도 끝이 안난다...
일단 ip주소를 암호화해서 쿠키를 구워주고, post 방식으로 hint에 나와있는 user agent의 정보 전체를 암호화해서 넘겨줘야 하는 것 같다.
+) 크롬을 사용하는 바람에 크롬의 정보만 암호화해서 넘겨주느라 몇번 실패했다.
해석해보면, ?.을 뺀 자신의 ip주소값=.을 뺀 자신의 ip값 형태로 넘겨주면 될 것 같다.
8단계)
get 방식으로 addr=127.0.0.1 를 넘겨주면 된다.
9단계)
ascii 코드값을 문자로 바꿔주면 될것 같다는 감이 왔다. 차근차근 풀어보자
97/99/101/103/105/107/109/111/113/115/117/119/121=>acegikmoqsuwy
get 방식으로 넘겨주자. ?ans=acegikmoqsuwy
10단계)
더이상 next 가 없다!! 마지막 문제답게 꽤 복잡하다. 차근차근 풀어보자.
answer값을 일단 구한 후에, answerip/{$answer}_{$ip}.php에 다시 접속해봐야 할 것 같다.
answer값을 구하기 위해 php 코드를 짜서 확인해보자. -> php compiler로 돌리면 값을 찾을 수 있다.
$ip ='~~~';//각자 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 $answer;
echo $ip
?>
이렇게 나온 answer,ip 값을 가지고. url에 접속해보자.
=>old 33 pwned.
php 공부를 바로 전날까지 해서 이해가 빨랐던 문제인거 같다. 근데 이 문제 만약에 창이라도 닫으면
1번부터 돌아가니 주의할것. 자동 로그아웃돼서 2번이나 다시 풀었다ㅠㅠ
'Wargame > webhacking.kr' 카테고리의 다른 글
Webhacking.kr- challenge 10,36,42, 43 (0) | 2020.02.23 |
---|---|
Webhacking.kr) OLD-23 writeup (0) | 2019.12.30 |
Webhacking.kr 150점 write-up (0) | 2019.12.04 |
Webhacking.kr- 50,100점 문제 writeup (0) | 2019.11.20 |