yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

파일 인클루전 (File inclusion) 본문

웹/웹 해킹

파일 인클루전 (File inclusion)

yehey 2020. 11. 11. 02:28

파일 인클루전 (File inclusion)

:include 함수를 이용해 include 할 파일을 웹 요청을 통해 지정할 수 있는 경우, 값을 조작하여 원하는 파일을 처리한다.

-php 어플리케이션에서 주로 발생하는 공격

 

include 함수
:다른 파일을 소스코드에 직접 포함시킬 수 있다.
지정된 파이르이 모든 텍스트를 가져와 include 함수를 사용하는 파일에 복사한다.

리모트 파일 인클루전 (Remote File inclusion)

:공격자가 인클루드할 수 있는 파일이 호스트 외부의 파일일 때

외부에 있는 파일도 원격으로 인클루드할 수 있어서 더욱 심각한 공격

파일 인클루전 공격 - RFI

정상적인 상항에서 애플리케이션이 file.php를 인클루드한다.

file.php가 웹 요청의 page 파라미터를 통해 지정된다.

이때 공격자는 file.php 대신에 자신이 관리하는 hacker.com으로부터 악성 코드 bad.php를 인클루드할 것을 지정

웹 애플리케이션이 입력값 검증을 수행하지 않으면 bad.php를 인클루드해서 실행할 수 있다.

로컬 파일 인클루전 (Local File inclusion) 

:공격자가 인클루드할 수 있는 파일이 호스트 내부의 파일일 때

파일 인클루전 - LFI

공격자는 외부의 파일 대신 서버 호스트 내부의 파일을 인클루드하려고 시도한다.

이때 상위 디렉터리의 경로를 의미하는 ../과 같은 문자열을 여러번 입력해서 루트 디렉터리로 이동할 수 있다.

루트 디렉터리 아래에 있는 모든 다른 경로를 지정할 수 있다.

위의 그림에서는 루트 디렉터리로 이동한 후 /etc 디렉터리로 이동해서 passwd 파일을 열고 있다.

(위와 같이 ../를 이용한 공격 기법을 디렉터리 트래버설 공격이라고 한다.)

파일 인클루전 공격 대응

  • 지정된 php 파일만 include 될 수 있도록 설정한다. (입력값 검증, 화이트 리스트 검증)
  • http://, https:// 와 같은 프로토콜 관련 문자열이나 ../ 과 같은 디렉터리 트래버설 공격을 위한 문자열을 차단 (블랙리스트 검증)

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

민감한 데이터 노출  (0) 2020.11.17
파일 업로드 공격 및 실습  (0) 2020.11.12
Stored XSS 공격 실습  (0) 2020.10.08
Reflected XSS 공격 실습  (0) 2020.10.04
Command injection 공격 실습  (0) 2020.10.01
Comments