ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 25번 풀이
    Wargame/webhacking.kr (old) 2019. 5. 7. 00:47


    LFI(Local File Inclusion) 취약점 (파일 업로드 취약점)

    웹 브라우저를 통해 서버에 파일을 포함시키는 과정에서

    include 할 페이지 경로를 적절히 필터링하지 않고, 디렉토리 변경 명령어들의 삽입을 허용할 때 발생

    보통 URL을 통해 이루어지며 ../../etc/passwd 와 같은 형식으로 접근하여 서버 내부의 중요한 디렉토리에

    접근할 수 있는 취약점


    문제를 보면 file=hello를 통해 hello라는 파일로 접근한다.

    이를 통해 index.php 또는 password.php에 접근할 수 있는지 확인해보았다.



    아무런 반응이 없다..;;

    hello.txt가 아닌 hello라고 입력한 이유가 있을까 싶어 index, password로도 접근해보았다.


    그러나,, 아무런 반응이 없었다.


    여기서!!

    한 가지 추측이 가능하다.

    hello라고 했는데 hello.txt에 접근할 수 있다.

    이는 서버에서 .txt를 추가해주는 것이 아닐까? 하는 추측을 해본다.


    만약 추측이 맞다면,

    index.php나 password.php를 입력한 경우에도 .txt가 추가되어 존재하지 않는 파일로

    접근을 시도하였기 때문에 아무런 반응이 일어나지 않았다고 생각할 수 있다.


    파일 업로드 취약점 대응 방법 중에 확장자를 체크하여, 특정 확장자만 업로드할 수 있도록 하는 방법이 있다.

    이는 업로드 시, %00를 이용하여 확장자를 우회할 수 있다.

    'test.php%00.jpeg'


    파일을 호출할 때 %00은 리눅스 서버에서 문자 종료를 의미한다.

    따라서 test.php로의 접근이 가능해진다.


    [ 리눅스 종단 문자 ]

    %00

    %zz


    따라서 .txt를 무효화 시키기 위해 종단 문자를 입력해주었다.


    ?file=password.php%00



    password.php 파일을 호출하여 비밀번호를 얻었다.

    .txt를 붙여주는 추측이 맞았던 것 같다.


    얻은 비밀번호를 Auth 페이지에 인증하면 문제가 풀린다.



    'Wargame > webhacking.kr (old)' 카테고리의 다른 글

    [Webhacking.kr] 27번 풀이  (0) 2019.05.07
    [Webhacking.kr] 26번 풀이  (0) 2019.05.07
    [Webhacking.kr] 24번 풀이  (0) 2019.05.06
    [Webhacking.kr] 23번 풀이  (0) 2019.05.06
    [Webhacking.kr] 22번 풀이  (0) 2019.05.06

    댓글

@Jo Grini's Blog