DreamHack - simple-phparse

2024. 7. 28. 13:08·DreamHack

 

 

문제 설명은 간단하다.

 

문제확인해 보자

 

 

 

 

 

 

 

 

 

 

문제화면이다 host, path를 보면 경로에 대한 문제인 거 같다.

 

코드를 확인해 보자.

 

 

 

 

 

 

<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <title>PHParse</title>
</head>
<body>


    <!-- php code -->
    <?php
     $url = $_SERVER['REQUEST_URI'];
     $host = parse_url($url,PHP_URL_HOST);
     $path = parse_url($url,PHP_URL_PATH);
     $query = parse_url($url,PHP_URL_QUERY);
     echo "<div><h1> host: $host <br> path: $path <br> query: $query<br></h1></div>";

     if(preg_match("/flag.php/i", $path)){
        echo "<div><h1>NO....</h1></div>";
     }
     else echo "<div><h1>Cannot access flag.php: $path </h1></div> ";
    ?> 

<style type="text/css">
        body {
            margin: 1em;
        }
        div {
            margin: 0 5px 0 0;
            padding: 0.1em;
            border: 2px solid silver;
            border-radius: 7px;
        }

</style>
</body>
</html>

 

 

중요한 부분만 보도록 하자

 

 

 

 

 

 

 

 

 

 

 

<?php
     $url = $_SERVER['REQUEST_URI'];
     $host = parse_url($url,PHP_URL_HOST);
     $path = parse_url($url,PHP_URL_PATH);
     $query = parse_url($url,PHP_URL_QUERY);
     echo "<div><h1> host: $host <br> path: $path <br> query: $query<br></h1></div>";

     if(preg_match("/flag.php/i", $path)){
        echo "<div><h1>NO....</h1></div>";
     }
     else echo "<div><h1>Cannot access flag.php: $path </h1></div> ";
    ?>

 

 

URL을 가져와 parse_url 함수를 통해  URL(host, path, query) 부분을 가져온다.

 

preg_match() 함수를 이용해서 URL의 경로에 'flag.php'가 포함되어 있는지 검사하는 거 같다.

 

요약하면 답은 flag.php 에 있는데 그걸 막아놓은 거 같다.

 

풀 수 있는 방법은 flag.php를 URL 인코딩을 하여 변환하는 사람이 많았는데...

 

나는 path를 host 부분으로 인식하게 해서 문제를 풀었다.

 

 

 

 

 

/test를 입력하면 path로 /test이 입력되지만 

 

//test를 입력하면

 

 

host 부분으로 인식하면 경로가 이동되었다고 볼 수 있다. 

 

이걸 이용해서 풀어보면

 

 

 

 

 

플래그가 출력된다.

'DreamHack' 카테고리의 다른 글

DreamHack - command-injection-1  (0) 2024.05.31
DreamHack - simple-ssti  (0) 2024.05.17
DreamHack - image-storage  (0) 2024.05.17
DreamHack - baby-sqlite  (0) 2024.04.30
Dreamhack - Csrf2 (수정)  (0) 2024.04.05
'DreamHack' 카테고리의 다른 글
  • DreamHack - command-injection-1
  • DreamHack - simple-ssti
  • DreamHack - image-storage
  • DreamHack - baby-sqlite
G_OM
G_OM
최대한 설명 열심히 하려고 합니다. 궁금한 거 있으면 언제든지 물어보셔도 좋습니다.
  • G_OM
    끄적끄적
    G_OM
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 모의해킹 (9)
      • Wargame (69)
        • Linux_bandit (33)
        • Webhacking.kr (36)
      • DreamHack (52)
        • WEB (14)
        • Reverising (9)
        • System (0)
        • CTF (22)
      • Android_security (7)
        • Drozer_Android (4)
        • Frida_Android (1)
      • 정보보안기사 (2)
      • IT? (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • DreamHack 에 대한 문제들...
  • 인기 글

  • 태그

    리눅스
    cookies
    bandit20
    lfi
    url encode
    Android
    union
    bandit
    php
    insecurebankv2
    CTF
    webhacking.kr
    sql injection
    난독화
    Linux wargame
    php wrapper
    정보보안기사
    bandit18
    Dreamhack
    bandit30
    리눅스 워게임
    drozer
    워게임
    Linux
    wargame
    Cookie
    webhacking
    overthewire
    안드로이드
    bandit17
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
G_OM
DreamHack - simple-phparse
상단으로

티스토리툴바