ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • File Upload 취약점 실습2 (LFI=Local File Include)
    IT/웹 해킹 2024. 2. 21. 16:15

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

     

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

    1. CTF 문제 및 시나리오

     

     

    현재 게시판에 게시물을 올렸을 때 php파일이 실행되지 않게 실행권한을 막아놓은 듯하다. 그래서 혹시 다른 페이지에서 php코드를 불러와 실행을 시키는 file include 취약점이 있는지 찾아보고 그걸 이용해 게시판에 올린 웹 쉘을 가져올 것이다. 이를 LFI 취약점 공격(local file include)라고 말한다. 반대로 RFI 취약점 공격은 (remote file include)는 NAS 서버 같은 떨어져 있는 서버 대상으로 하는 공격을 말한다.

     

    2. 실습

     

    1) 글쓰기 페이지로 들어가 파일 업로드 버튼을 누른다. 

     

     

    2) php 확장자가 비활성화된 모습을 볼 수 있다.

     

     

    3) 프록시를 켜고 다시 글쓰기 버튼을 눌러 burp suite의 intercept 기능을 이용하여 자바스크립트 코드를 수정한다. (php 확장자 추가 및 html input 태그의 accept 속성을 text/php로 수정)

     

     

     

    4) php 확장자가 활성화된 화면을 볼 수 있다. 파일을 올리고 글작성 완료 버튼을 눌렀을 때 확장자를 PhP로 변경 (php는 올라가지 않는 상태)

     

     

    5) 글 작성 후 파일 다운로드 버튼의 경로를 복사해서 URL에 붙여 넣기 및 파라미터 값 입력을 하여 직접접근을 통해 명령어를 내려보지만 코드가 실행되지 않고 출력되는 화면을 볼 수 있다.

    파일 실행권한을 막아놓은 것 같다. 또는 PhP의 대소문자를 구분해 실행을 하지 않는 것으로 추측이 된다.

     

     

    6) 메인페이지에 추가된 카테고리가 생겼다. 바로 인사말 페이지!

     

     

    7) 인사말 페이지의 화면이다. 각 언어로 된 버튼이 존재하는데 이 버튼을 누르면 인사말이 영어, 한국어, 일본어, 스페인어로 번역되어 나온다. 이때 URL의 파라미터를 보면 lang=en.php 가 보이는데 서버에 존재하는 php파일을 불러와 화면에 출력시키는 것을 볼 수 있다.

     

     

    8) 여기에 웹 쉘 파일이 저장된 경로를 입력하고 파라미터를 붙여 리눅스 명령어를 넣어보면?! 바로 화면에 현재 경로가 출력되는 것을 볼 수 있다.

     

     

    9) find 명령어를 이용하여 flag 의 위치를 알아냈다.

     

     

    10) cat을 이용하여 flag 값을 출력해보았다. 플래그 획득!

    'IT > 웹 해킹' 카테고리의 다른 글

    File Download 취약점 실습2  (0) 2024.02.21
    File Download 취약점 실습  (0) 2024.02.21
    File Upload 취약점 실습  (0) 2024.02.21
    File Upload 취약점 및 Webshell  (0) 2024.02.20
    CSRF 실습2 (CSRF 토큰 인증 우회)  (2) 2024.01.24
Designed by Tistory.