쉽고 깔끔하게

[LOS ; Lord of SQL Injection] 14번 giant 문제풀이 본문

WebHacking/LOS

[LOS ; Lord of SQL Injection] 14번 giant 문제풀이

찐무 2022. 3. 30. 14:09
728x90
반응형


문제

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


풀이

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

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

- $subject : 입력 문자열

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

 

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

1) space (공백)

2) \n

3) \r

4) \t

 

또한 shit의 입력값의 길이가 1이 넘지 않아야 한다는 조건이 있다. (strlen())

 

※ 문제를 해결하기 전 참고하면 좋은 문제

2022.03.15 - [WebHacking/LOS] - [LOS ; Lord of SQL Injection] 5번 wolfman 문제풀이

 

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

문제 https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php 풀이 preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함..

butt3r-cat.tistory.com

이전에 풀었던 5번 wofman 문제에서 space (공백)을 우회할 수 있는 문자들에 대해 정리해놓은 것을 바탕으로 문제를 해결하고자 한다.

 

문자 16진수(Hex)   설명
tab %09   \t 필터링으로 사용 불가
line feed %0a   \n 필터링으로 사용 불가
vertical tab %0b  
form feed %0c  
carriage return %0d   \r 필터링으로 사용 불가
/**/     길이 초과로 사용 불가

 

필터링 규칙으로 사용이 불가능한 것들을 제외하고 나면 vertical tab인 %0b와 form feed인 %0c만 남는 것을 알 수 있다.

이 두 가지를 이용하여 문제를 해결하면 다음과 같다.

 

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

▶︎ shit=%0b

 

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

▶︎ shit=%0c

728x90
반응형