ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • File Download 취약점 실습2
    IT/웹 해킹 2024. 2. 21. 19:14

    [이 블로그는 해킹 공부하면서 가볍게 정리용으로 기록 및 내 생각을 끄적여 두기 위한 블로그(라 쓰고 일기라 읽는)이다.]

     

    • 목차
    1. CTF 문제 및 시나리오
    2. 실습

    1. CTF 문제 및 시나리오

     

    파일 다운로드에 취약점이 존재하는데 이 전 실습 1번과 같은 방법은 더 이상 통하지 않는다. 이때 힌트는 이전 실습의 download.php의 소스 코드를 보고 획득했다. 바로 필터링이 걸린 것이다. [../ ] 이전 디렉터리로 이동하는 것이 먹히지 않는다. 이때 우회 방법을 생각하여 공략을 해보자.

     

    2. 실습

     

    1) 게시판에 게시글 작성 중 파일 업로드를 하여 게시글을 작성하고 파일 다운로드 버튼의 경로를 복사 후 URL에 입력해 본다.

     

    2) 이때 이전과 같이 /../ 파일 경로를 지정하여 download.php를 해본다.

    바로 컷 당하는 모습을 볼 수 있다.

     

     

    3) burp suite를 통해 일단 게시물에 접근할 때 패킷을 보도록 한다.

    file download script에 무언가가 추가된 것이 확인되었다. 이전 실습에서 다운로드한 download.php를 확인해 보자.

     

     

     

     

    4) 코드를 보면 $filePath의 replace함수가 주석 처리된 것을 볼 수 있다. 아마도 주석 처리를 제거하고 필터링을 하고 있는 것으로 보인다.

     

     

    5) URL인코딩을 하여 필터링 우회 시도를 해보았다. 파일이 다운로드되었지만 0byte... 열어보니 빈 깡통이었다. URL인코딩이 먹히지 않는 것 같다. 그래서 더블 URL 인코딩도 시도해 보았지만 결과는 마찬가지이다.

    burp suite로 ../ url 인코딩을 한 모습

     

     

    url에 ../를 url 인코딩한 파일경로에 삽입

     

     

    download 된 php 확장자 파일

     

     

    6) 이때 XSS취약점 공격을 실습할 때 했던 필터링 우회 방법을 적용해 보았다. ( ex) scrscriptipt -> scr script ipt 가운데에 있는 script가 제거되고 scr+ipt가 합쳐져 문자열이 완성되는 구조)

    그대로 적용 시 ....// -> .. (../) / 

     

    다운로드가 되었고 파일의 데이터가 0Byte가 아닌 것을 확인하고 열어보았다.

     

     

    7) 이전 실습 때의 download,php 파일과 달리 주석 처리가 사라진 것을 볼 수 있다.

     

     

    8) 위와 똑같이 적용하여 index.php 파일을 다운로드하였더니 플래그 발견!

     

     

    필터링은 역시 화이트 리스트로 하는 게 좋지 않을까 한다. 블랙리스트 필터링은 갖가지 우회방법이 존재하니 여러모로 해커들에게 좋은 먹잇감이 될 것이다. 

Designed by Tistory.