[webhacking.kr] old-26문제

2026. 1. 22. 02:33·워게임/webhacking.kr

1. 문제 정보

  • 문제 번호 : old -26
  • 문제 점수 : 10점

2. 문제 분석

들어가면 까만 화면과 view-source가 나온다.

소스는 아래와 같다.

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 26</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }    
a { color:lightgreen; }
</style>
</head>
<body>
<?php
  if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); }
  $_GET['id'] = urldecode($_GET['id']);
  if($_GET['id'] == "admin"){
    solve(26);
  }
?>
<br><br>
<a href=?view_source=1>view-source</a>
</body>
</html>

 

소스에서는 preg_match를 통해 /admin/과 get['id']값을 비교해 같으면 no를 반환하고 종료한다.

그리고 urldecode를 하고 admin과 같으면 solve(26)이 반환된다.

 

그러면 preg_match할때는 인코딩 되어 있으면서 if문에서는 디코딩한 값이 admin이면 문제가 풀린다.


 

3. 풀이

아래와 같이 get의 id인자값에 %2561dmin값을 입력하면 첫 번째에서는 %61dmin이 첫 번째 비교이며 두번째에는 admin이 되서 통과한다.


4. 요약

 

  • 소스 코드는 preg_match로 "admin"을 먼저 필터링하지만, 이후 urldecode를 추가로 수행하여 필터링을 무시하는 취약점이 있다.
  • PHP 서버가 $_GET 입력값을 받을 때 자동으로 한 번 디코딩한다는 점을 고려하여, 필터링은 피하고 최종 비교 값은 "admin"이 되도록 만들어야 한다.
  • 이중 URL 인코딩(Double URL Encoding) 값인 %2561dmin을 입력하면, 필터링 단계는 %61dmin으로 통과하고 이후 코드 내의 디코딩을 통해 admin으로 변환되어 문제가 해결된다.

 

'워게임 > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-38문제  (0) 2026.01.23
[webhacking.kr] old-18문제  (0) 2026.01.22
[webhacking.kr] old-54 문제  (0) 2026.01.21
[webhacking.kr] old-24 문제  (0) 2026.01.20
[webhacking.kr] old-32 문제  (0) 2026.01.20
'워게임/webhacking.kr' 카테고리의 다른 글
  • [webhacking.kr] old-38문제
  • [webhacking.kr] old-18문제
  • [webhacking.kr] old-54 문제
  • [webhacking.kr] old-24 문제
yt_5246
yt_5246
yt5246 님의 블로그 입니다.
  • yt_5246
    yt의 공부 블로그
    yt_5246
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (61)
      • IT (1)
      • Security (11)
        • 시스템해킹 (3)
        • 리버싱 (6)
        • 암호학 (0)
        • tools (2)
      • Book (0)
      • 자격증 (3)
      • 워게임 (46)
        • DVWA (7)
        • WebGoat (4)
        • webhacking.kr (35)
      • 버그바운티 (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yt_5246
[webhacking.kr] old-26문제
상단으로

티스토리툴바