前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >那些年我们一起学XSS - 6. 换行符复仇记

那些年我们一起学XSS - 6. 换行符复仇记

作者头像
渗透攻击红队
发布2019-11-20 11:17:42
1K0
发布2019-11-20 11:17:42
举报
漏洞知识库

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

关注

换行符复仇记

漏洞介绍

还是在<script>之间的场景,某些情况下,我们仅仅需要的只是一个换行符,就可以绕过过滤了。它让双引号,尖括号知道了“它们不是一个符号在战斗”。

1.实际场景是下面这个例子。

http://datalib.games.qq.com/cgi-bin/search?libid=178&FilterAttrAND=3602&FilterValueAND=aaaaaaaaaa

对应的,我们可以看到我们的输入aaaaaaaaa 会在页面的哪些输出点出现呢?

2. 不错,一共有5处,有在HTML标签之间的(教程1),也有在<script>..</script>之间的。但是呢,该过滤的,< , > 过滤掉了, 该过滤的 " ,也过滤掉了。

3. 也就是说传统的已经不行啦,我们继续看5处的其他地方。呀,竟然还有一大段注释里,也出现了我们的【输出】

4. 嗯,这样一来,是否会想到这样一个用法呢?

//我是注释,我爱洗澡,哦~哦~哦~ [我是输出]

如果可以使用换行符的话。

//我是注释,我爱洗澡,哦~哦~哦~ [我是输出  换行符
 alert(1);//我是输出]

这样alert(1); 就会被成功执行。 5. 恩,带着这样一个想法,我们不难构造出以下利用。

http://datalib.games.qq.com/cgi-bin/search?libid=178&FilterAttrAND=3602&FilterValueAND=%0aalert(1);//

看下输出。嘿,果然没过滤。

6. 这样,这一次我们的换行符立功了, 它不是一个符号在战斗!

修复方案

尽量不要在JS的注释里输出内容。还挺危险的。

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

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

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

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

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