본문 바로가기
CTF/webhacking.kr

[CTF] webhacking.kr 11번 Write-Up

by spareone 2022. 10. 14.

webhacking.kr 11번 문제풀이 Write Up 입니다.

[그림 1] Level 11 페이지

다짜고짜 틀렸다고 합니다. 도대체 뭐가...

이해를 위해 view-source를 클릭해 보겠습니다.

[그림 2] Level 11 소스코드

소스코드를 살펴보면 이렇습니다.

<?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

이렇게 입력하면 될 것 같습니다.

[그림 3] val 값을 작성하는 모습

URL 뒤에 index.php?val= 을 적고 val값을 작성합니다.

[그림 4, 5] 문제 해결 완료 메시지

해당 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

댓글