排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
举报
首页
/
利用ASP.NET中的x-up-devcap-post-charset报头绕过WAF
利用ASP.NET中的x-up-devcap-post-charset报头绕过WAF
启明星辰金睛安全研究团队
2020-04-05
1246
常见的WAF绕过技巧中,我们知道攻击者可以通过在请求包的Content-Type中指定罕见的请求编码(如ibm500)来进行某些WAF的绕过。
通常waf只检测它所识别的编码,比如说它只识别utf-8的字符,但是服务器可以识别比utf-8更多的编码。
那么我们只需要将payload按照waf识别不了但是服务器可以解析识别的编码格式即可绕过(比如下面图中的ibm500)。并且借助SoroushDalili开发的burp插件(
https://github.com/nccgroup/BurpSuiteHTTPSmuggler
)我们可以很轻松的用burpsuite做到这一点
以SQL注入为例,使用ibm500编码数据后,在注入点传入And1=1 不再拦截。
And 1=2 报错。
爆出用户名。
但如今,这种“古老”的绕过方法已经被大众所熟悉,安全人员也早已在WAF规则中做了修补,只允许白名单中的编码字符集或禁止黑名单中的编码字符集。
然而,去年一位研究人员在ASP中发现了一个新的可以传递charset值的报头,能够绕过任何现有针对Content-Type报头的保护机制。
下面是 x-up-devcap-post-charset 报头的使用示例:
POST/test/a.aspx?%C8%85%93%93%96%E6%96%99%93%84= HTTP/1.1
Host: target
User-Agent: UP foobar
Content-Type: application/x-www-form-urlencoded
x-up-devcap-post-charset:ibm500
Content-Length: 40
%89%95%97%A4%A3%F1=%A7%A7%A7%A7%A7%A7%A7
如上面所示,Content-Type头内没有指定charset参数,但却在x-up-devcap-post-charset头中指定了charset。为了告诉ASP.NET要使用这个新的报头,User-Agent报头必须以UP作为开头。
上面采用ibm500编码部分的POST数据也是用上述的Burp Suite HTTP Smuggler插件生成的,编码前等于如下的请求:
POST/testme87/a.aspx?HelloWorld= HTTP/1.1
Host: target
User-Agent: UP foobar
Content-Type:application/x-www-form-urlencoded
Content-Length: 14
input1=xxxxxxx
测试发现,编码后的payload确实能绕过WAF,且能被后端正常解析。
查看ASP的相关源码如下:
https://github.com/Microsoft/referencesource/blob/3b1eaf5203992df69de44c783a3eda37d3d4cd10/System/net/System/Net/HttpListenerRequest.cs#L362
https://github.com/Microsoft/referencesource/blob/08b84d13e81cfdbd769a557b368539aac6a9cb30/System.Web/HttpRequest.cs#L905
可以看到,ASP在检查Content-Type头的charset参数之前,先对UA和x-up-devcap-post-charset进行了检测,满足条件时,直接结束判断并返回 x-up-devcap-post-charset中指定的值作为charset。
其实这个稍显冷门的绕过技术也并不算非常的新鲜,但在安全攻防中,防御方永远是被动的一方,需要做到在所有的点都滴水不漏。而攻击方只需要攻破任意一个点,便可让防御方的其他努力付诸东流。所以防御人员必须与时俱进,及时了解最新的攻击手法,做好防御措施,加大攻击人员的攻击成本。本文便是旨在查漏补缺,供大家学习交流。
数据库
文章转载自
启明星辰金睛安全研究团队
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨