All Inclusive
Overview
- Overall difficulty for me: Very easy
In this challenge, we can start a docker instance:
Find the flag
Home page:
View-Source:
Hmm… We’re missing a GET parameter: SPOT
? Let’s provide that in the index.php
.
Oh! We can include files!
Let’s use base64 PHP wrapper to find the source code of index.php
!
Copy and decode that:
┌──(root🌸siunam)-[~/ctf/GuidePoint-Security-Oct27-2022/Web/All-Inclusive]
└─# subl index.b64
┌──(root🌸siunam)-[~/ctf/GuidePoint-Security-Oct27-2022/Web/All-Inclusive]
└─# cat index.b64 | base64 -d > index.php
index.php
:
<?php
$flag = 'Null';
if ( $null != "$_GET[SPOT]" ) {
include("$_GET[SPOT]");
}
else {
echo "<!-- Missing GET parameter SPOT -->";
}
?>
Nothing weird in here…
Hmm… Let’s enumerat hidden PHP file via gobuster
:
┌──(root🌸siunam)-[~/ctf/GuidePoint-Security-Oct27-2022/Web/All-Inclusive]
└─# gobuster dir -u http://10.10.100.200:59529/ -w /usr/share/wordlists/dirb/common.txt -t 100 -x php
[...]
/flag.php (Status: 403) [Size: 281]
[...]
Found flag.php
!!
Let’s use that Local File Inclusion (LFI) vulnerablilty to get the flag!
Conclusion
What we’ve learned:
- Exploiting Local File Inclusion (LFI)