33번 문제는 ,, 10문제다.... 쿨럭
33-1



문제가 이런식으로 계속 이어져 있다.
33-2


POST 방식으로 넘겨주는 값이 있어야 할 것 같다.
하지만 문제에선 POST 방식으로 보낼 수 있는 text 상자가 없기 때문에 직접 페이지코드를 수정하였다.



33-3


'$_SERVER["REMOTE_ADDR"] : 웹서버에 접속한 접속자의 IP정보' 이기 때문에 나의 IP주소를 적어주었다.

33-4


※ md5() : 문자열에서 md5 해시값을 생성하는 함수
time() : 1970년 1월 1일 0시 0분 0초부터 지금까지 지나온 초를 정수형태로 리턴해주는 함수
GET 방식으로 전달된 password 값이 time()을 md5 방식으로 암호화한 값이라면 문제가 풀리는 것 같다.
하지만 이 time() 값은 현재 시간을 나타내는 것이어서 1초마다 바뀐다.
따라서 현재 시간에서 약 15초 정도 뒤의 time값을 md5 방식으로 암호화시킨 후,
15초 뒤에 URL에 ?password=15초 뒤 time값을 암호화한 값을 전달해주었다.

33-5


이번에는 GET 방식으로 imget, POST 방식으로 impost를 넘기고, 쿠키 값을 imcookie로 설정하면 풀릴 것 같다.

get과 post 방식으로 데이터를 한 번에 전송하기 위해서
form의 action 주소를 md555.php?imget=imget 으로 설정하였고(이러면 GET 방식으로도 전달되므로)
post 방식으로 impost를 넘겨주었다.

쿠키 값도 imcookie로 설정한 후의 화면이다.

33-6


① 이름이 test인 쿠키를 만들어 33-3에 사용됐던 IP주소를 MD5로 암호화한 값을 넣어주고
② post 방식으로 문제 화면에 나와있는 값을 MD5로 암호화한 뒤 kk라는 이름으로 넘겨주면 될 것 같다.


33-7


33-3번 문제에서 쓰였던 내 IP 주소를 활용하는 문제이다.
str_replace 함수를 사용하여 이 IP 문자열에 있는 모든 . 을 없애고
$_SERVER['REMOTE_ADDR']에 다시 저장하고 있다.
주의할 점은 GET으로 넘겨지는 값(인자값)의 변수(인자)도 이와 똑같다는 것!
따라서 .을 없앤 IP주소를 GET 방식으로 전달했다.

33-8


※ extract 함수 : $_GET을 인자로 넣으면 ($_POST도 가능) GET으로 넘기는 파라미터와 값을 변수와 그 초기값으로 설정
extract 함수의 기능을 이용하여 넘기는 파라미터 addr의 값을 127.0.0.1로 설정하면 풀릴 것 같다.

33-9


※ chr : 아스키코드 번호를 받아 해당하는 문자열을 리턴해주는 함수
+) ord : 문자열의 첫번째 문자에 해당하는 아스키도르를 리턴해주는 함수
아스키코드 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121에 해당하는 문자열이 $answer에 연속적으로 추가된다.
따라서 이를 GET 방식으로 ans 파라미터에 넣어서 문제를 풀면 될 것 같다.

33-10


이리저리 변경된 나의 IP주소를 $answer과 $ip 변수에 넣고 문제 풀이를 유도하고 있다.

실행 결과 $ip 변수와 $answer 변수의 값을 알아냈다.
그리고 fopen시 사용하는 디렉토리를 그냥 URL에 적어주면 될 것 같다.

'WEB > WEB Hacking' 카테고리의 다른 글
[Webhacking.kr] Challenge(old) 38번 풀이 (0) | 2021.06.04 |
---|---|
[Webhacking.kr] Challenge(old) 36번 풀이 (0) | 2021.06.03 |
[Webhacking.kr] Challenge(old) 27번 풀이 (0) | 2021.05.30 |
[Webhacking.kr] Challenge(old) 26번 풀이 (0) | 2021.05.30 |
[Webhacking.kr] Challenge(old) 25번 풀이 △ (0) | 2021.05.30 |