LFI
LFI vulnerabilities are still going strong and will likely not disappear anytime soon. It is often useful for the application to be able to pull code from other files on the disk. This makes it more modular and easier to maintain. The problem arises when the string passed to the include
directive is assembled in many parts of the application and may include data supplied by an untrusted user.
A combination of file upload and file inclusion can be devastating. If we upload a PHP shell and it is dumped somewhere on the disk outside of the web directory, an LFI exploit could fetch that code and execute it.
The DVWA can be used to showcase this type of attack. The high
difficulty setting disallows the uploading of anything but JPEG or PNG files, so we can't just access the uploaded shell directly and execute the code.
To get around this issue, we can generate a fake PNG file using ImageMagick's convert
command. We will create a small 32×32 pixel image, with a...