[TryHackMe] File Inclusion Lab

코준·2025년 6월 5일

TryHackMe

목록 보기
11/32
post-thumbnail

File Inclusion에 관한 Challange 중 하나를 풀어보려고 한다.
플래그 1,2,3을 찾는 것은 성공했으나 마지막 문제를 푸는 것은 포스팅과 함께 하려고 한다.
학습한 과정을 따라가면서 여러 방법을 시도해 플래그를 얻어보자.


일단 test를 올려봤는데 include에 걸리는 것, .php가 따로 나오지는 않는 것을 알아냈다.

/playground.php에서 hostname 커맨드를 실행하라고 한다. 이 문제에서는 RFI가 존재한다는 것을 알아야한다.
http://10.10.20.47/playground.php에 접속해 RCE를 가질 수 있는 방법을 알아내야한다.

RFI를 살펴봤을 때 file 파라미터값으로 공격자의 PHP 파일을 호스팅하는 서버를 입력했었다.
cmd.txt 파일에 hostname을 실행하는 명령어를 적어두고 PHP 파일을 실행할 수만 있으면 RCE를 가질 수 있을 것 같다.

일단 PHP파일로 hostname을 실행하도록 명령할 코드를 cmd.txt파일로 만들었다.

공격자의 ip를 http서버로 호스팅했고, 위 파일은 10.10.141.134/cmd.txt로 접근 가능할 것이다.

curl로 POST요청을 해보자.

매우 당황했다.
에러코드가 405인 경우 HTTP 요청에 사용되는 메서드 중 허용되는 메서드를 사용하지 않았을 때 주로 뜬다고 들었는데 POST요청이 안되면 파라미터를 올릴 수가 없다.

그런데 405를 유심히 살펴보다가

국내 문서지만 그럴듯한 글을 발견했다. 생각해보니 8000번 포트로 열어놓고 포트를 입력하지 않고 POST 요청을 보내고 있더라.

공격자 ip위치에 :8000을 달아서 정확히 입력했다고 치자.

!! 굳잡 타겟 ip에서 내 파일을 읽었나보다.
lfi-vm-thm-f8c5b1a78692

profile
Hi !

0개의 댓글