Dreamhack - Apache htaccess(파일 업로드 우회)

·2025년 8월 9일

Dreamhack-Writeups

목록 보기
34/52
post-thumbnail

Apache htaccess

문제 링크

https://dreamhack.io/wargame/challenges/418

문제 설명

파일 업로드 기능을 악용하여 서버의 권한을 획득하는 문제입니다.

문제에 언급된 htaccess 파일을 이용하는 문제임을 유추할 수 있습니다.

  • .htaccess란?
    • 웹서버에서 특정 디렉토리의 설정을 변경할 수 있게 하는 설정 파일입니다.
    • 디렉토리마다 별도로 설정을 적용할 수 있어 기능 제어가 가능합니다.
    • .으로 시작하여 일반 파일 목록에 보이지 않는 숨김파일입니다.

풀이과정

  1. 파일 업로드 하는 웹 사이트가 제시되어 있습니다.

upload.php를 확인해 보았습니다.

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

위 코드를 통해 php파일의 업로드가 차단되어 있음을 확인할 수 있습니다. 웹 사이트가 php로 제작되었기에, 파일 업로그 공격을 하려면 php파일을 업로드 해야 하는데, 막혔기에 우회법을 찾아야 함을 알 수 있습니다.
2. 문제에서 언급된 .htaccess 파일 을 통해 필터링을 우회할 수 있습니다.

AddType application/x-httpd-php .txt
  • AddType : 웹서버 설정 지시어로, 특정 확장자를 가진 파일어떤 타입으로 처리할지 지정하는 명령어입니다.
  • application/x-httpd-php : 해당 확장자의 파일을 PHP 코드로 해석해서 실행하라는 뜻입니다.
  • .txt : 설정이 적용될 파일 확장자입니다.
  • 즉, 이 설정이 있으면 txt 파일을 PHP로 해석하게 됩니다.
  1. 위의 설정 명령어를 메모장에 작성하고, 파일명을 .htaccess , 저장 유형을 모든 파일 로 설정하고 저장합니다.

  2. .htaccess 파일을 업로드 합니다.

  3. 웹쉘을 .txt 형식으로 저장합니다. 저는 커맨드 입력창만 제공하는 아주 간단한 php 웹쉘을 사용하였습니다.

    ※ 교육용 / 분석용 목적입니다.

  4. 웹쉘을 업로드 해줍니다.

  5. 웹쉘 업로드 링크를 클릭하면 정상적으로 작동하는 것을 확인할 수 있습니다. .txt 파일을 업로드 하였지만 .htaccess 파일 덕분에 php형식의 웹쉘 업로드에 성공하였습니다.

  6. 플래그 위치에 대한 힌트는 주어지지 않았지만, 있을거라 예상되는 위치인/flag 을 입력하였더니 플래그 값을 획득할 수 있었습니다.


배운점

  • .htaccess 에 대해 배웠습니다. .txt 파일로 업로드를 하여도 이를 PHP로 인식하게 하는 등, 특정 디렉토리의 설정을 변경할 수 있게 하는 강력한 우회 파일을 알게 되었습니다.
  • 아무리 위험 업로드 형식에 대한 제한이 있어도 이를 우회할 수 있는 방법이 존재함을 알 수 있었습니다.
  • 실무 보안을 할 때에는 직접적인 위험요소 뿐 아니라, 우회할 수 있는 방법까지 막아야 함을 배웠습니다.
  • 웹쉘 공격은 한번 뚫리면 서버의 모든 정보를 볼 수 있기에 매우 위험함을 다시 한번 체감하였습니다.

Summary (English)

  • Learned about .htaccess files, which allow directory-specific configuration changes on Apache web servers.
  • Discovered that .htaccess can be used to bypass upload restrictions by making .txt files be interpreted as PHP scripts.
  • Even when direct upload of PHP files is blocked, attackers can upload webshells with other extensions like .txt and use .htaccess to execute them.
  • Emphasized the importance of considering not only direct vulnerabilities but also potential bypass techniques in real-world security.
  • Understood how webshell attacks can lead to full server compromise once successful.
profile
CTF 풀이 및 실습 중심 학습을 기록합니다.

0개의 댓글