【文件上传】---内容、解析漏洞、CVE---day22

【文件上传】---内容、解析漏洞、CVE---day22

一、upload-lab案例演示

1、Pass-14---图片马、文件包含、文件头

①页面

image-20210413150409138

②操作方法---生成图片马

用到的工具:https://github.com/fofapro/fofa_view

下载后解压,创建一个图片文件,和一个php一句话木马文件。

image-20210413150951760

使用如下命令:生成图片马

copy 1.jpg /b + shell.php /a webshell.jpg

image-20210413151256702

注意这个并不是这个工具里的,在桌面上操作也可以。

当然也可以手工操作,直接把代码copy到图片文件的最后面。

效果:

image-20210413151854326

③上传图片,复制图片地址。

由于要用到文件包含,文件包含将这个图片当做脚本执行了。

image-20210413155703233

执行效果:

image-20210413160801241

2、Pass-18 二次渲染

①源代码

存在二次渲染的逻辑漏洞,第一次上传时候没有验证就直接上传了。

image-20210413161728323

image-20210413162315697

分别对应下面的三个地址

image-20210413162324008

②条件竞争,资源竞争

就是说比如我们现在打开一个文档正在编辑,然后现在删除,操作系统会提示无法删除。因为资源正在被占用。

我们可以在上传webshell.jpg的时候,不断地对它进行访问,然后下面的rename()函数就无法成功执行。

使用bp的intruder模块,不断地发包,然后在另外的浏览器请求对应的文件。

image-20210413163918648

就可以成功的访问到。

image-20210413164022320

代码的问题:在上传一次之后才验证文件的条件。

3、Pass-20 文件夹

①源代码

image-20210413164853392

②操作方法1:文件名实现绕过

直接上传修改php无法上传

image-20210413165231566

我们可以通过%00截断来上传

image-20210413170040624

②操作方法2:文件夹名实现绕过

image-20210413170215995

image-20210413170552711

成功。

Pass-21 数组接受+目录命名

①源代码

image-20210413171000939

就是下面的这个意思

image-20210413171013401

②操作方法:

这里为白名单,Pass-20的方法不好用了奥。

image-20210413171359336

思路:

第20关
upload-20.php/.		#对于21关行不通,因为为白名单过滤。
现在假设我们采取
upload-20.php/.jpg	#这样对方在接收的时候后缀格式为jpg

那么我们现在通过修改数组中的变量来伪造。

image-20210413172223775

文件上传成功。

image-20210413172452015

分析:

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启动环境

image-20210413195234977

上传jsp马,然后复现就完了

三、中间件解析漏洞+配合文件上传测试

image-20210413200509246

文章链接:

https://www.cnblogs.com/1996-11-01-614lb/p/14237744.html

1、IIS-上传-解析

image-20210413200153979

2、Apache-上传-解析-vulhub

3、Nginx-上传-解析-vulhu

posted @ 2021-05-17 20:54  DarkerG  阅读(109)  评论(0编辑  收藏  举报