7z apache解析漏洞_渗透测试之文件上传漏洞和任意文件下载

文件上传漏洞类型分类

如何判断上传漏洞类型?

本次实现使用的靶场系统是upload-labs      upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。

任务1:

查看下源码   只在js里添加了几个白名单 后端没有任何过滤

第一关只有前端用JavaScript过滤   先把木马的名字改为合法的后缀  再用burp抓包 修改成PHP后缀名就可以上传

任务2:

第二关检查的是文件类型

步骤和任务一的一样

任务3:

还是先查看一下源代码

设置了黑名单 删除两边空格

$deny_ext=array('.asp','.aspx','.php','.jsp');  这里是黑名单验证 可以试下php3 php5后缀名  但是Apache默认是不允许解析 如果运维人员修改配置文件是可以解析的

如果中间件是IIS6.0 2003服务器的话 可以利用IIS的解析漏洞绕过

直接上传名为 xx.asp:.jpg的文件

任务4:

利用Windows的命名特性  上传xx.php:.jpg    Windows系统会自动去掉:.jpg

先把马的名字改成xx.jpg  然后利用burp抓包 修改文件名

文件上传成功了

但是文件是空的  然后再上传一遍   然后将文件名改为4.>>或4.>>

任务5:

源代码

和之前对比没有了转换为小写

黑名单后缀名:$deny_ext=array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

可以直接把后缀名改成PHP或者PhP等组合绕过

由于Windows系统不区分大小写  大写PHP也可以正常当做php文件解析

任务6:

源码

过滤代码会删除文件名后面的点  但是过滤时只过滤.php  没过滤.php点

利用Windows字体文件命名特性  在xx.php后面加空格点  . 直接切掉 .  只留xx.php

任务7:

源代码

和任务6原理相同   加空格加点

任务8:

什么是数据流?

php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名

相比之前缺少了数据流检测

可以在后面直接加::$DATA绕过

任务9:

加点加空格加点

删除掉末尾点  还有点和空格  再去空  还剩个点  Windows会自动去掉后面的点

任务10:

因为只过滤了一次php

在后面打乱一个php中间插入一个php  过滤掉完整的php后又拼出一个完整的php

任务11:

这关是白名单验证   可以使用%00截断绕过   但是PHP版本要小于5.3.4

任务12:

00截断上传

任务13:

绕过文件头检查,添加GIF图片的文件头GIF89a,绕过GIF图片检查

或者我们使用命令copy 1.jpg /b + shell.php /a

webshell.jpg,将php一句话追加到jpg图片末尾,代码不全的话,人工补充完整。形成一个包含Webshell代码的新jpg图片,然后直接上传即可。但是我们没有办法拿到shell,应为我们上传的图片马无法被解析成php形式,通常图片马配合%00或者0x00截断上传,或者配合解析漏洞

任务14:

同13

任务15:

同14

任务16:

16多出个图片二次渲染

直接找一个正常的图片  然后在里面插入webshell 不用管图片是否可以正常显示   被二次渲染后webshell还是在里面

图片插入一句话木马方式和任务13一样

任务17:

利用条件竞争删除文件时间差绕过

服务器先把文件保存  然后再检查上传的文件是否合法 不合法再进行删除

先用burp多线程上传几千个文件   再多线程访问上传的文件     文件在打开时是无法删除的

利用服务器在处理文件时的时间差 不让程序删除上传的文件

先随便上传个图片 获取文件地址

图片地址

上传木马用burp抓包

把数据包发送给测试器

先清除掉负载

上传3000个文件 没有负载标记

线程数100    快速上传让程序来不及处理就访问   访问时文件就被占用  程序再去删除就无法删除

再抓一个访问这个文件的数据包    和上图一样  访问3000次   线程100

任务18:

还是和上一关一样   快速上传几千个文件 让程序来不及重命名

然后利用Apache的解析漏洞  直接访问xx.php.7z

任务20:

双文件上传

用于欺骗

如果hatccess没有加入黑名单 可以上传.hatccess文件  文件内容为

SetHandler application/x-httpd-php

意思为任意拓展名都当做PHP脚本解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值