문제의 첫 화면입니다.
첫 번째 문제의 소스 코드입니다.
get 방식으로 get 변수에 hehe라는 값을 넣어주면 다음 문제로 넘어가는 구조입니다.
url로 값을 전달하니 다음 문제가 열립니다.
두 번째 문제 화면입니다.
두 번째 문제 소스코드입니다.
post 방식으로 post에 hehe, post2에 hehe2 값을 넣어 전달해주면 다음 단계로 갈 수 있습니다.
파이썬으로 코드를 작성합니다.
requests 모듈에 관한 설명은 아래 글을 참고해주세요.
https://security-nanglam.tistory.com/77
요청 결과 33.php가 다음 문제의 주소임을 알 수 있습니다.
세 번째 문제 화면입니다.
세 번째 문제의 소스 코드입니다.
자신의 ip 주소를 myip에 입력해 get 방식으로 전달해주면 다음 문제로 갈 수 있습니다.
mac의 터미널에서 curl ipconfig.me 명령어를 사용하면 자신의 ip를 조회할 수 있습니다.
해당 ip를 url로 전송해주면 다음 단계의 문제가 열립니다.
네 번째 문제입니다.
네 번째 문제의 소스 코드입니다.
php에서 타임스템프를 나타내는 time() 함수의 값을 md5로 해쉬한 값과 동일한 값을 password 변수에 넣어서 get 방식으로 전달해주면 다음 단계로 넘어갈 수 있습니다.
time() 함수의 값은 매 초마다 1씩 증가하니 숫자를 더해 미래의 시간을 넣어서 새로고침을 계속 눌러 미래의 시간과 일치할 때 문제가 풀립니다.
임의의 미래의 시간을 정해서 해당 시간의 time() 함수의 반환 값을 md5 온라인 변환 사이트에서 변환해준다.
https://fumire.moe/lab/hash.php
해당 값을 url로 전달한다.
미래의 시간과 일치할 때까지 계속 새로고침을 하면 다음 문제가 열립니다.
다섯 번째 문제입니다.
다섯 번째 문제의 소스 코드입니다.
imget, impost, imcookie에 값이 존재하면 다음 문제가 열리는 구조입니다.
get방식으로 imget에 값을, post 방식으로 impost와 imcookie에 값을 전달해주면 됩니다.
파이썬으로 코드를 짜줍니다.
요청 결과 다음 문제의 주소는 gpcc.php임을 알 수 있다.
여섯 번째 문제입니다.
여섯 번째 문제의 소스코드 입니다.
쿠키 값으로 test변수에 자신의 ip를 md5로 해싱한 값을 넣고
kk 변수에 힌트로 주는 값을 md5로 해싱한 값을 post 방식으로 전달해준다.
브라우저로 요청할 때와 파이썬으로 요청할 때 $_SERVER['HTTP_USER_AGENT)']의 값은 다릅니다.
위와 같이 요청하면 hint의 값이 브라우저에서와는 다른 모습을 볼 수 있습니다.
hint의 값을 md5로 해싱해서 kk에 넣어주고 다시 요청해줍니다.
다음 문제의 주소는 wtff.php라는 것을 알 수 있다.
일곱 번째 문제입니다.
일곱 번째 문제의 소스 코드입니다.
자신의 ip 주소에서 .을 뺀 값을 변수 이름과 값으로 제출하면 됩니다.
즉, wtff.php/?ip_address=ip_address 의 형태로 요청하면 됩니다.
이렇게 다음 문제가 열립니다.
여덟 번째 문제입니다.
여덟 번째 문제의 소스 코드입니다.
addr에 127.0.0.1을 넣어서 get 방식으로 전송해주면 됩니다.
이렇게 다음 문제가 열립니다.
아홉 번째 문제입니다.
아홉 번째 문제의 소스 코드입니다.
아래 주소에서 php 코드를 실행시켜 볼 수 있습니다.
https://www.w3schools.com/php/phptryit.asp?filename=tryphp_intro
소스코드의 php 코드를 실행해서 나오는 값을 get방식으로 ans 변수로 전달해주면 됩니다.
전달해주면 다음 문제가 열립니다.
마지막 열 번째 문제입니다.
열 번째 문제의 소스 코드입니다.
php 코드를 실행시켜 ip와 answer의 값을 얻습니다.
answerip/{$answer}_{$ip}.php에서 answer와 ip에 해당 값을 넣고 url로 요청하면 됩니다.
해당 php 파일을 요청하면 최종적으로 문제가 풀립니다.
'write-up(web) > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge old-27 write-up (0) | 2022.07.27 |
---|---|
[Webhacking.kr] Challenge old-38 write-up (0) | 2022.07.26 |
[Webhacking.kr] Challenge old-54 write-up (0) | 2022.07.19 |
[Webhacking.kr] Challenge old-26 write-up (0) | 2022.07.15 |
[Webhacking.kr] Challenge old-16 write-up (0) | 2022.07.07 |