一、什么是文件包含漏洞
文件包含是指应用程序没有对引用的文件做合理的校验,导致包含的文件中含有恶意的代码,并且执行了该代码。从而产生了文件包含漏洞
二、文件包含漏洞的利用条件
1.引用一个任意类型的文件
2.程序读取文件并且执行
三、将木马程序放入某个本地文件中。
1.利用网站报错日志写入木马程序
2.利用文件上传功能,上传含有木马的任意文件
四、文件包含getshell
1.本地文件包含getshell
网站会将一些错误信息记录到日志文件中,我们可以利用这个特性将木马写入日志文件中去
1.1首先需要找到日志文件的存储位置
开启日志权限
1.2往日志文件写木马。
可以看到一句话木马被进行了url编码设置,因为浏览器会自动对url进行编码,url编码过后我们不能使用工具连接了,所以我们可以使用bp抓包进行修改数据
1.3使用工具连接,由于此时访问需要cookie值,以前的菜刀连接工具没有这个功能,所以我们使用中国蚁剑。
2.通过文件包含漏洞来包含自己上传的文件来达到getshell的目的,比较方便,
这个方法条件是:
2.1,有文件包含漏洞,
2.2,有文件上传功能且能够获取到上传文件的路径,
2.3,能够包含上传的文件,
2.4,没有严格过滤被包含的文件,
2.1 选择上传文件
首先测试发现上传文件成功
判断文件存储路径为:http://localhost/DVWA2/hackable/uploads/1.jpg
此时写入木马程序,并将后缀改为jpg格式
发现成功上传并且报错到目录
使用蚁剑进行连接
查看是否可以使用远程文件连接
使用中国蚁剑成功连接
3.远程文件包含getshell
payload:page=data://text/plain,<?php fwrite(fopen('D:/phpStudy/PHPTutorial/WWW/shell.php','w'),"<?php eval(\$_POST[1]);?>")?>
使用蚁剑成功连接
3.2使用php://input伪协议包含