Different PHP Methods
There are two different methods that will create an LFI if not used correctly. Those two are:
file_get_contents() – This is going to just display the text within the file by reading the contents as a string, and will not interpret PHP code for execution. If the LFI is using this method, you can only enumerate files on the filesystem.
include() – This is going to execute everything within the PHP tag as actual PHP code. If the LFI is using this method, then we SHOULD be able to get command execution.
You can tell which method is being used by using the LFI to read the PHP file that causes the LFI.
- If the source code IS displayed, then the PHP code was interpreted by the server and you have a file_get_content() LFI.
- If the code is NOT displayed, then you have an include().
Example: Say your request looks like this:
GET /news.php?file=../news.php

Because the source code is visible in the response, we can assume we’re working with a file_get_content() LFI with no possibility of code execution.
Files to check while enumerating LFI:
../../../../../../../etc/passwd
../../../../../../../home/<users>/.ssh/authorized_keys
../../../../../../../home/<users>/.ssh/bash_history
To get the username of who we’re running as:
../../../../../../../proc/self/environ
To see what binary is running this service:
../../../../../../../proc/self/cmdline
If you have Tomcat running as well, you may want to enumerate these:
../../../../../../../usr/share/tomcat9/bin/catalina.sh
../../../../../../../usr/share/tomcat9/etc/tomcat-users.xml
../../../../../../../usr/share/tomcat9/conf/tomcat-users.xml
Note: Make sure to adjust the version number located in the path.