LFI(Local File Inclusion) 취약점
로컬 파임 포함?
- 공격할 파일이 원격지에 있다는 의미.
- 원격지에 있는 디렉터리로 접근하여 원하는 값을 열어볼 수 있음.
- php 코드에서 include() 부분에 적절한 필터링 미존재 시 발생.
(include_once(), require(), require_once(), file_get_contents() 모두 가능)
- get, post 통하여 include 부분을 건든다면 LFI 고려할 것.
$GET['test']
include "pages/$test"; 같은 부분
- 변수명이 query 같은 느낌이 아닌, page, command, file, template, document, foler 등 이런느낌인 경우 LFI 의심해보자
- 또는 변수에 https://google.com 같은 주소 입력 시 뜨는지.
요즘은 php 버전업이 되면서 php wrapper를 활용한다고 함.
주로 php://filter (base64 인코딩 이용)
1) php://filter
- 오픈 시 스트림에 필터를 적용할 수 있도록 설계된 메타 알고리즘
- readfile(), file() 및 file_get_contents()와 같은 올인원 파일 함수에 유용
구문: php://filter/convert.base64-encode/resource=파일경로
결과: 의문의 base64인코딩된 값
---
이 외에도 사용되는 php wrapper
2) expect:// : 프로세스 상호 작용 스트림. system command 실행.
ex) ?page=expect://dir
3) zip:// : 압축을 풀고 압축을 푼 파일 내 코드를 실행
ex) ?page=zip://압축파일명.zip#소스파일.php
'보안 > 웹·모바일' 카테고리의 다른 글
[iOS] 기드라 탈옥탐지 우회 참고 (0) | 2022.11.08 |
---|---|
[iOS] frida 왜 덤프를 할 때마다 멈췄는가? (0) | 2022.11.08 |
OS Command Injection (0) | 2022.10.28 |
LDAP 정의와 그 용도, 문법, 주통기 진단 항목 (0) | 2022.10.27 |
[inflearn] sql injection part 1 환경 세팅 (1) | 2022.10.03 |