文件包含漏洞(pikachu)
文件包含漏洞
在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用'包含'函数功能,比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候,就直接在文件头中写上一句<?php include function.php?>就可以调用函数代码。
但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了'包含'功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击者可以通过修改包含文件的位置让后台执行任意文件(代码)
这种情况我们称为'文件包含漏洞'
文件包含漏洞有'本地文件包含漏洞'和'远程文件包含漏洞'两种情况
本地文件包含
进入靶场
当我们选择一个球员的时候,url会提交一个get请求
如果这个服务器架设在linux上我们就可以一直../../../../../到根目录然后再进行对应固定配置文件
这样就会把相应文件的内容暴露出来
在windows上会发满一点,我就这样输出出来看看就好
远程文件包含
远程文件包含漏洞形式跟本地文件包含漏洞差不多,在远程包含漏洞中,攻击者可以通过访问外部地址来加载远程的代码。
远程包含漏洞的前提:如果使用的incldue和require,则需要php.ini配置入选
allow_url_fopen=on //默认打开
allow_url_include=on //默认关闭
本地文件包含需要攻击者自己猜目录还只能读取配置文件
远程文件包含就厉害了,攻击者可以自己搭建站点。里面写上恶意代码
传入后台,后台的包含函数就会加载攻击者的恶意代码
我们可以写一个php的文件来自动写入一个一句话木马