본문 바로가기

보안지식

LFI 실습 문제

안녕하세요 이번에 LFI 실습 문제을 풀어보면서 한 번 더 정리해보겠습니다.

 

 

 

목적은 이겁니다.

 

게시판에 이미지 파일을 올려보는데 바로 <?php system($_GET['cmd']); ?> 로 변형해서 올리겠습니다.

 

 

.intercept on 하고 올리면 변형이 가능합니다.

 

 

그리고 이 사이트에서 파라미터로 include하는 곳을 찾아봅니다.

 

찾다 보니 인사말에서 lang으로 php문을 받는 게 있네요!

여길 이용 하겠습니다.

 

좋아요

 

버프스위트로 넘어가서 저희가 게시판에 변형해서 올린 jpg 파일 다운로드 경로를 가져오겠습니다.

 

/lfi_1/files/hello/hello.JPG

 

그리고 이 파일의 위치를 가져와서 그대로 include 하는 파라미터에 넣겠습니다.

 

이렇게요!

 

그리고 난뒤에 ../을 붙여서 파일 위치를 찾아보겠습니다.

 

찾았네요

 

그리고 이제 저희가 입력해 둔 한 줄 웹 쉘을 이용해서 cmd=ls 보내보겠습니다.

 

 

 

그럼 그 이미지 파일 안에 있는 소스들이 실행되면서 ls 명령문을 실행하게 되는 거죠!

 

그다음에 자세히 보면 topSecret 폴더가 있습니다.

 

cmd=ls+topSecret 들어가서 flag.txt 정보를 가져오겠습니다.

 

쉽네요

 

 

 

이렇게!

 

이렇게 답이 나오는 것을 알 수 있습니다.

 

 

오늘은 간단하게 LFI 실습을 해보았습니다.

 

대응 방법은 간단합니다.

 

DB에 파일 저장하게 하는 방법

또는 파일 서버를 따로 만든다.

또는 파일 검증 하는 겁니다!

 

 

감사합니다.