아무 반응이 없어서 코드를 확인하였다.
<?php
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
if(preg_match($pat,$_GET['val'])){
solve(11);
}
else echo("<h2>Wrong</h2>");
echo("<br><br>");
?>
코드를 확인해보니, 정규포현식 관련된 문제인 듯하다.
Get 메소드로 보낸 입력값이 정규포현식에 걸리면, Falg를 출력한다.
변수 pat에 정의된 정규포현식을 분석하였다.
- [1-3] : 1부터 3까지의 숫자에 해당하는 문자
- [a-f]{5} : a~e까지의 알파벳 소문자
- _.$_SERVER[REMOTE_ADDR] : _
+ 공인 IP 주소
- \\tp\ta\ts\ts : \t
은 탭을 뜻함. 즉, 탭 p 탭 a …
위를 모두 만족하는 문자열은 123abcde_IP주소 p a s s
이다.
위의 값을 서버로 보내니, Flag를 획득할 수 있었다.
PHP 정규포현식 참고 사이트
코딩의 시작, TCP School
'워게임 > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Old - 49 Write Up (0) | 2021.05.27 |
---|---|
[Webhacking.kr] Old - 46 Write Up (0) | 2021.05.27 |
[Webhacking.kr] Old - 7 Write Up (0) | 2021.05.26 |
[Webhacking.kr] Old - 5 Write Up (0) | 2021.05.25 |
[Webhacking.kr] Old - 4 Write Up (0) | 2021.05.25 |