오늘은 33번 문제를 풀어보자.
문제를 열자마자 다음과 같은 화면이 반겨준다.
제공해준 코드를 확인해보니 GET메소드을 통해 넘겨받은 get이 hehe이면 다음으로 넘겨주는것 같다.
그래서 문제가 코드가 요구하는대로 했더니 문제는 해결되었다.
2단계 문제가 나왔다.
주어진 코드를 확인했더니 이번에는 post 메소드를 통해 post에 hehe를, post2에 hehe2를 담아서 보내라 한다.
JS로 가상의 폼을 만들어 전송할 수 있지만 귀찮으니까 HTML 수정을 감이해 보내보자.
위처럼 코드를 작성하여 Submit 버튼을 누르니
풀렸다.
Next를 눌렀더니 3단계가 나왔다.
제공해준 코드를 확인해보니 get 메소드를 통해 myip에 내 아이피 주소를 담아 전송해주면 되는것 같다.
따라서 요구대로 해줬더니 또 풀렸다.
Next를 눌렀더니 4단계가 나왔다.
제공해준 코드는 다음과 같았다.
hint로 제공해준 숫자는 PHP상에서 time() 함수를 실행하여 나온 결과값이었고, 우리가 제출할때는 MD5로 해싱하여 보내야 했다.
hint값이 초당 1씩 올라가니 적당히 30정도 더하여 md5 해싱하여 ?password=(해쉬) 로 전송하였더니 풀렸다.
Next를 눌렀더니 5단계로 넘어갔다.
코드를 보니 GET을 통해 imget을 전송해주고, POST를 통해 impost를 전송해주고, 쿠키에 imcookie라는 키가 있어야 하는것 같다.
따라서 이 문제의 url 뒤에 ?imget=1 을 붙혀주고,
imcookie라는 키값을 가진 새로운 쿠키를 생성해주었으며,
html상의 수정을 감이하여 POST를 보내줄 form을 만들었다.
이제 이 상태로 Submit을 눌러주니
5단계가 해결되었고, 다음단계로 가는 링크가 나왔다.
Next를 눌렀더니 6단계로 넘어갔다.
이 문제에 대한 코드는 다음과 같았다.
test라는 키를 가진 쿠키값에 md5로 해싱된 자신의 아이피를 넣고,
hint로 제공된 본인의 User-agent를 md5로 해싱한 해쉬를 post해주면 되는 모양이다.
따라서 html상에 form을 생성해주고
Submit 해주면 풀린다.
Next를 누르면 7단계로 넘어간다.
SERVER함수중 REMOTE_ADDR이 현재 본인 아이피에서 . 을 뺀 값으로 설정되었기 때문에 다음과 같이 보내야 한다.
만약, 아이피가 111.11.1.11 이면 ?11111111=11111111 이런식으로 말이다.
이렇게 하면 풀린다.
Next를 누르면 다음단계로 넘어간다.
이 문제에서는 addr이 없으면 $addr이 본인의 아이피로 설정되지만, 값을 보내면 그 값이 $addr로 설정된다.
따라서 ?addr=127.0.0.1 로 보내주면 풀릴것 같다.
역시 풀린다.
Next를 누르니 또 다음단계로 넘어간다.
이 문제의 코드는 다음과 같다.
위의 반복문이 아스키코드로 변환하여 $answer을 채워주는것 같은데 솔직히 귀찮아서 실제로 돌려 $answer값을 얻었다.
저 값을 get메소드를 통해 ans에 담아 보냈더니 풀렸다.
Next를 눌렀더니 마지막 단계로 보이는곳으로 넘어갔다.
솔직히 여기서 Wrong이 안떠서 좀 당황하긴 했는데 코드를 보니 이해가 되었다.
코드는 다음과 같았다.
접속한 IP를 가져와서 일정한 절차를 거쳐 해당 디렉토리에 파일을 만들어주는것 같았는데, 앞에 이 문제에 있는 단계가 너무 길었던 터라 너무 지쳐서 위 코드를 좀 수정하여 직접 돌려보았다.
그랬더니 역시 값이 나왔다.
이제 정확한 디렉토리를 알아 해당 링크( /answerip/$ip에 해당하는 값/$answer에 해당하는 값.$ip에 해당하는 값 )로 접속하였더니 플래그(인증 키)가 나왔다.
이거 풀면서 느낀건데..... 출제자 변태인ㄱ.... <<<
WEBHACKING.KR 33번 문제 클리어!
'보안공부 > Webhacking.kr 풀이' 카테고리의 다른 글
webhacking.kr 11번 문제 풀이 (0) | 2019.06.03 |
---|---|
webhacking.kr 47번 문제 풀이 (0) | 2018.09.12 |
webhacking.kr 32번 문제 풀이 (0) | 2018.08.29 |
webhacking.kr 27번 문제 풀이 (0) | 2018.08.26 |
webhacking.kr 38번 문제 풀이 (0) | 2018.08.23 |