类型
文件包含类型分为两种,一种是本地文件包含,另一种是远程文件包含
存在文件包含的条件:
一. 本地文件包含:
直接读取目标机上的Flag文件,通常可以通过操纵变量去读取。
解题思路:
1)直接包含内有Flag的文件
通过给定的URL查看源码
传入参数
2)通过PHP伪协议读取代码中的Flag
这里URL的意思是:读取index.php的内容,并把输入流进行base64编码,不进行base64编码就如法读取源码,就看不到flag
3)写入PHP木马获取webshell,查看Flag
这个例子依旧是代码审计的题,注意阅读代码和注释信息
为了进一步确定采用哪种思路,需要查看php.ini文件:
这里的allow_url_fopen是关闭的,allow_url_include是开启的,则可以尝试使用php://input协议写入木马:
二. 远程文件包含
指定第三方服务器上可运行的PHP木马,拿到webshell,查看Flag文件
解题思路:
通过查看php.ini文件,发现allow_url_fopen 和 allow_url_include都是打开的,所以可以判断是远程文件包含
通过param参数上传木马文件: