상세 컨텐츠

본문 제목

Step7. 파일 인클루전 공격

화이트 해커를 위한 웹 해킹의 기술

by 메리_99 2021. 2. 27. 16:02

본문

반응형

Step7. 파일 인클루전 공격

  • 파일 인클루전 공격은 주로 PHP 애플리케이션을 대상을 발생한다.

  • PHP는 인클루드라는 기능을 제공하는데, 이 기능은 include라는 함수를 이용하여 다른 파일을 소스코드에 직접 포함시킬 수 있는 기능이다.

  • 인클루드 할 파일을 외부 사용자가 지정할 수 있는 경우 파일 인클루전 취약점이 존재하게 된다.

파일 인클루전 공격 개요

  • 파일 인클루전 공격은 공격자가 인클루드 할 파일이 각각 호스트 내부의 파일인지 외부의 파일인지에 따라 로컬 파일 인클루전(LFI)과 리모트 파일 인클루전(RFI : 더욱 심각한 공격)으로 구분한다.

  • RFI : 공격자는 자신이 관리하는 호스트로부터 악성코드를 인클루드 할 것을 지정한다.

  • LFI : 공격자는 ../../를 반복해 루트 디렉터리에 접근하게 되고 그 이후 모든 디렉터리에 접근할 수 있게 된다.

  • ../../를 이용한 공격 기법 : 디렉터리 트래버셜 공격

파일 인클루전 공격 실습

  • 파일이 인클루드되는 웹 페이지에 접속한다.

파일 인클루전 취약점이 의심되는 웹 페이지
위의 주소창을 통해 page 파라미터가 지정된 것을 확인

RFI

  • 이후 악성 파일을 웹 페이지에서 열 수 있게끔 해준다.

bad.php를 웹 페이지에서 열 수 있게 디렉터리를 이동시키는 화면
bad.php의 코드

  • 악성 파일은 단순하게 /etc/passwd를 출력시키는 코드이다.

  • 이후 page의 파라미터를 조작하여 악성 파일을 인클루드 해준다.

bad.php가 인클루드되어 /etc/passwd를 출력

LFI

  • page 파라미터에 ../../../../../../etc/passwd와 같이 디렉터리 트래버셜 공격을 실행한다.

디렉터리 트래버셜 공격 실행

파일 인클루전 대응

  • 외부 사용자가 입력한 파일 이름을 인클루드에 사용하지 않게 한다.

  • 어쩔 수 없이 파일의 이름을 외부에서 입력받아야 하는 경우에는 반드시 그 입력값을 검증해야 한다.

  • 가급적이면 화이트리스트 검증을 사용하여, 나머지 파일 이름에 대해서는 모두 차단해야 한다.

  • 블랙리스트 검증의 경우에는 http://, https:// 와 같은 프로토콜 관련 문자열이나, ../와 같은 디렉터리 트래버셜 공격을 위한 문자열을 차단해야 한다.


위 글은 ' 화이트 해커를 위한 웹 해킹의 기술 최봉환 저'를 공부하며 쓴 글입니다.
728x90

관련글 더보기

댓글 영역