웹 공부
RFI/LFI
insetto:)
2023. 11. 13. 00:38
반응형
Local File Inclusion(LFI) 개념
- LFI는 Local에 있는 파일을 읽는 공격임
- 이를 통해 공격자가 시스템 파일을 탈취하거나 미리 업로드된 쉘 코드를 Include 시켜 의도한 코드를 실행하게 할 수 있음
Wrapper
- PHP에는 URL style 프로토콜을 위한 wrapper가 존재.
- 파일 시스템 관련 함수로 filename에 Wrapper을 써서 개발자의 의도와 다른 행위 발생 가능
대표적인 시스템 함수들
LFI 공격을 하면서 유용하게 사용할 수 있는 wrapper
- expect:// (system command 실행 : www.[웹 사이트의 주소].index.php?page=expect://ls)
- php://filter/ (다양한 I/O스트림 다루는데 사용, 대표적으로 base64 encoding으로 문서 열람 : www.[웹 사이트의 주소].index.php?page=php://filter/convert.base64-encode/resource=/etc/passwd)
- zip:// (zip파일의 압축을 푼 다음에 파일안에 있는 코드를 실행시켜 주는 기능 : www.[웹 사이트의 주소].index.php?page=zip://file.zip#shell.php)
Remote File Inclusion(RFI) 개념
- RFI는 원격 파일 포함 공격
- 공격자가 자신의 서버에 셸 코드를 미리 준비 시켜두고 취약 서버가 해당 파일을 소스코드로 incldue 시켜 의도한 코드를 실행하게 할 수 있음
드림핵 php-1 문제
- php wrapper로 LFI 공격을 해야함
- view.php 파일을 보면 됨
- 필터링 기법을 이용하면 된다. (php=filter/convert.base64-encode/resource=[파일이름]
- page=php://filter/convert/base64-encode/resource=../uploads/flag
반응형