200점짜리 문제다. 주제에 10단계까지 가야 clear가능하다. 전반적으로 php코드 해석, get, post, cookie에 대해 물어보는 문제였다.
1.
if $_get[get] == "hehe" 일때 next를 echo하기 때문에 url에 get=hehe 를 붙여주면 clear
2.
if $_POST[post]=hehe && $_POST[post]=hehe2이면 next이다 이번엔은 앞에 스테이지와 다르게 포스트 방식으로 인자를 전달해야하므로 위와 같이 간단한 스크립트를 이용한다.
3.
REMOTE_ADDR 사용자가 현재 페이지를 보고 있는 시스템의 IP 주소인 본인의 ip주소를 myip로 넘기면 된다.
4.
현재시각을 나타내는 time()값을 md5로 암호화한 값과 get으로 받은 password의 값과 비교해서 같을 경우 클리어인데 미리 몇 초 뒤의 값을 넣고 암호화하여 새로고침을 몇번 눌러주다 보면 값이 일치해서 쉽게 문제를 풀 수 있다.
5.
get방식의 imget변수와 post방식의 impost변수 그리고 cookie에 포함된 imcookie값에 아무값이나 넣어줘서 문제를 풀어주면 된다.
if가 참이면 클리어
6.
user-agent와 ip주소를 md5 암호화 하여 넣어주는데 중요한점은 post방식으로 data를 보낼때는 url인코딩을 거쳐 보내야 한다는 점이다.
7.
if($_GET[$_SERVER[REMOTE_ADDR]]=$_SERVER[REMOTE_ADDR]) 값을 보면 알 수 있듯이 나의 IP주소에서 . <=을 뺀 값을 변수명으로 하고 동시에 그값을 변수에 넣어주면 조건문에 성립하게 된다.
8.
설명생략
9.
php문을 보면 for문을 돌리는데 i=97부터 2씩 증가하여 122까지 돌린다. $ch=에 $i의 캐릭터값을 넣고 answer변수에 한글자씩 붙여서 문자열을 만들어준다. 그러면 answer="acegikmoqsuwy"가 될것이다.
10.
ip주소를 $ip변수에 넣고 len($ip)번 for문을 실행한다. str_replace함수를 사용해서 $i 값을 모두 ord($i)로 치환한다.
두번째 str_replace는 . <-을 없애주는 기능을 하고
substr($ip,0,10)을 해서 문자열을 잘라서 저장하는 기능을한다.
php문을 온라인에서 test할 수 있는 사이트를 이용해서 ip와 answer값을 알아보고
<-- 형식에 맞춰서 url에 입력해주면 password가 출력된다.
이렇게 하면 33번의 문제가 모두 풀린다.
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 59번 (0) | 2018.04.26 |
---|---|
Webhacking.kr 42번 (0) | 2018.04.26 |
Webhacking.kr 32번 (0) | 2018.04.17 |
Webhacking.kr 23번 (0) | 2018.04.17 |
Webhacking.kr 20번 (0) | 2018.04.17 |