【文件上传】---内容、解析漏洞、CVE---day22
【文件上传】---内容、解析漏洞、CVE---day22
一、upload-lab案例演示
1、Pass-14---图片马、文件包含、文件头
①页面
②操作方法---生成图片马
用到的工具:https://github.com/fofapro/fofa_view
下载后解压,创建一个图片文件,和一个php一句话木马文件。
使用如下命令:生成图片马
copy 1.jpg /b + shell.php /a webshell.jpg
注意这个并不是这个工具里的,在桌面上操作也可以。
当然也可以手工操作,直接把代码copy到图片文件的最后面。
效果:
③上传图片,复制图片地址。
由于要用到文件包含,文件包含将这个图片当做脚本执行了。
执行效果:
2、Pass-18 二次渲染
①源代码
存在二次渲染的逻辑漏洞,第一次上传时候没有验证就直接上传了。
分别对应下面的三个地址
②条件竞争,资源竞争
就是说比如我们现在打开一个文档正在编辑,然后现在删除,操作系统会提示无法删除。因为资源正在被占用。
我们可以在上传webshell.jpg的时候,不断地对它进行访问,然后下面的rename()函数就无法成功执行。
使用bp的intruder模块,不断地发包,然后在另外的浏览器请求对应的文件。
就可以成功的访问到。
代码的问题:在上传一次之后才验证文件的条件。
3、Pass-20 文件夹
①源代码
②操作方法1:文件名实现绕过
直接上传修改php无法上传
我们可以通过%00截断来上传
②操作方法2:文件夹名实现绕过
成功。
Pass-21 数组接受+目录命名
①源代码
就是下面的这个意思
②操作方法:
这里为白名单,Pass-20的方法不好用了奥。
思路:
第20关
upload-20.php/. #对于21关行不通,因为为白名单过滤。
现在假设我们采取
upload-20.php/.jpg #这样对方在接收的时候后缀格式为jpg
那么我们现在通过修改数组中的变量来伪造。
文件上传成功。
分析:
save_name[0]='aaaaa.php/'
save_name[1]=''
save_name[2]='jpg'
所以file={'aaaaa.php/','','jpg'}----------->经过源码中的拼接aaaaa.php/.jpg
二、CVE-2017-12615 Tomcat上传漏洞 中间件漏洞
1、环境搭建
vulhub启动环境
上传jsp马,然后复现就完了
三、中间件解析漏洞+配合文件上传测试
文章链接:
https://www.cnblogs.com/1996-11-01-614lb/p/14237744.html