본문 바로가기

웹/보안

LFI

include 명령은 문자열이나 파일등을 입력받아 현재 페이지의 해당 위치에 그대로 포함시키고, 이후 php가 해석하는 순서로 진행된다.

 

php LFI

문제 : https://babyphp.canhack.me/?p=home

php의 LFI에서는 php wrapper를 사용할 수 있다. 

expect://

php://

zip://

phar:// 

data://

 

data wrapper는 data://text/plain;base64,SSBsb3ZlIFBIUAo= 모양으로도 사용할 수 있지만

data:text/plain,data 와 같이 //를 안붙이고도 사용할 수 있다.

문제에서는 파라미터가 wrapper:// 형식으로 시작하면 전부 필터링해버리고, 글자 길이도 20까지 입력할 수 있다.

 

p 파라미터를 통해 전달받은 데이터 data:,가 include 되면서 include 'data:,' . '.php'; 코드가 된다.

. 은 문자열을 연결시켜주는 역할을 하며 결국엔 .php라는 데이터를 텍스트 형식으로 출력하게 된다.

data에 <?=`명령`?>를 전달하여 php코드를 포함시킬 수 있고, ls 명령을 전달하여 디렉터리구조를 파악할 수 있다.

cat a*명령으로 admin.php 파일을 읽은뒤 소스보기를 통해 플래그를 찾는다. 

 

 

' > 보안' 카테고리의 다른 글

XSS with BBCode  (0) 2020.02.12
Chrome XSS 우회 (feat. canhack.me)  (0) 2020.02.11
SQL 인젝션 테스트용 테이블  (0) 2019.12.16
파일 다운로드 취약점  (0) 2019.12.03
언어 별 특징 : JSP  (0) 2019.11.19