본문 바로가기

H4cking Game/Web

PHP LFI

반응형

문제 환경

문제 사이트인 http://web.h4ckingga.me:10012/로 접속한다.

웹페이지 접속 화면

그러면 위와 같은 페이지가 보이는데 여기서 hello를 누르면

 

hello를 클릭한 뒤 화면

inc에 hello가 파라미터로 입력되어 요청을 보내서 위와 같은 TMI를 볼 수 있다.

 

test를 클릭한 뒤 화면

test를 누르면 위와 같이 뜨는데 위 글을 보면 hello, test는 파일이라는 것을 알 수 있다.

파일의 내용을 읽어온다면 LFI를 생각할 수 있다.

 

 

LFI 취약점 확인

LFI 취약점 확인

그래서 /etc/passwd를 입력해봤다.

파일 내용은 잘 읽어온다.

 

 

 

필터링 우회 과정

최종 목표는 /flag 내용을 읽는 것이니 /flag를 입력해봤다.

필터링 확인

그런데 위와 같이 출력된다.

아무래도 위 값이 필터링 되는 거 같다.

그래서 URL Encoding이나 hex Encoding을 시도해봤는데 똑같이 no hack이라고 출력된다.

 

 

필터링 우회 시도

http://web.h4ckingga.me:10012/?inc=data://text/plain;base64,PD9waHAgc3lzdGVtKCIvZmxhZyIpOyA/Pg==

php wrapper를 이용해봤는데 이것도 필터링에 걸린다.

 

 

필터링 우회 시도2

뭐가 필터링에 걸리나 했더니 ://가 필터에 걸리는 거 같다.

://는 :로 우회할 수 있다.

 

 

필터링 우회 성공

http://web.h4ckingga.me:10012/?inc=data:text/plain;base64,PD9waHAgc3lzdGVtKCIvZmxhZyIpOyA/Pg==

위처럼 :// 를 :로 바꿔서 시도해보면 flag 값이 나오는 것을 확인할 수 있다.

 

 

필터링 목록 확인 가능

http://web.h4ckingga.me:10012/?inc=data:text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgL3Zhci93d3cvaHRtbC9pbmRleC5waHAiKTsgPz4=

참고로 위 URL로 index.php 내용을 불러오면 주석으로 필터링 목록을 확인할 수 있다.

반응형