文件包含
概述
有些时候文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞。
分类
- 本地文件包含
- 远程文件包含
涉及函数
- require()
2.require_once()
3.include()
4.include_once()
危害
这样的攻击手段可以读取服务器敏感文件,也可以调用执行脚本,对网页进行恶意破坏。这样的攻击方式更为隐蔽。
防御措施
1.设置白名单,对传入的参数进行过滤
2.过滤危险字符
3.通过php.ini配置文件目录
4.在php.ini中关闭危险配置
靶场实操
第一关
下拉框选明星?找到科比,提交,抓包
数据包中出现了filename=,尝试在此处下手
我之前有在根目录里放入了一个txt文件作为测试,所以可以用…/逐级向上查找。最后在返回了四级目录后访问到了该文件
第二关
和第一关一样
选科比,抓包
将filename后的内容替换为远程服务器上文件的路径,还以hell.txt为例
搞定