webhacking.kr 11번 문제풀이 Write Up 입니다.
다짜고짜 틀렸다고 합니다. 도대체 뭐가...
이해를 위해 view-source를 클릭해 보겠습니다.
소스코드를 살펴보면 이렇습니다.
<?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>");
?>
val에 특정 문자열이 들어가면 문제가 풀리는 것 같습니다.
그리고 val은 GET 방식으로 값이 전송되고 있습니다.
일단 if 조건을 만족할 문자열을 만들어 보겠습니다.
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
이 정규식을 만족하면 됩니다.
[]의 의미는 해당 문자 중에 하나 있으면 되고,
{}의 의미는 바로 앞의 문자가 괄호 안의 수 만큼 있으면 된다는 의미입니다.
$_SERVER[REMOTE_ADDR] 는 현재 PC IP를 적으면 됩니다.
이후 \tp\ta\ts\ts를 붙이면 되는데, \t는 tab 문자이고 URL 형식으로 변환하면 %09입니다.
IP는 https://findip.kr/ 접속하면 바로 확인할 수 있습니다.
1aaaaa_xxx.xxx.xxx.xxx%09p%09a%09s%09s
이렇게 입력하면 될 것 같습니다.
URL 뒤에 index.php?val= 을 적고 val값을 작성합니다.
해당 URL에 접속하면 문제가 정답처리 됩니다.
'CTF > webhacking.kr' 카테고리의 다른 글
[CTF] webhacking.kr 14번 Write-Up (0) | 2022.10.14 |
---|---|
[CTF] webhacking.kr 12번 Write-Up (0) | 2022.10.14 |
[CTF] webhacking.kr 10번 Write-Up (0) | 2022.10.14 |
[CTF] webhacking.kr 8번 Write-Up (0) | 2022.10.14 |
[CTF] webhacking.kr 7번 Write-Up (1) | 2022.10.11 |
댓글