** 如果错过互联网,与你擦肩而过的不仅仅是机会,而是整整一个时代。**
基本概念
XSS(Cross-site scripting)跨站脚本攻击。(缩写为CSS,但会与层叠样式表 Cascading Style Sheets 混淆,故称XSS)通常发生在客户端,可被用于进行窃取隐私,钓鱼欺骗,窃取密码,传播恶意代码等。
XSS攻击指通过网页开发时留下的漏洞,通过巧妙的方法注入恶意代码,使用户加载并执行攻击者恶意制造的网页程序。 在动态页面插入< 等特殊字符时会误认为插入了一段HTML标签,当此标签引入一段JS代码时,脚本程序就会自动执行,如果无法检测或检测出现失误时,就会出现XSS漏洞。
漏洞类型
反射型XSS
反射型XSS只是将用户输入数据从服务器上反射给用户浏览器,要利用此漏洞,就要诱导用户访问一个恶意URL或直接在用户请求的URL地址里面注入恶意代码,如果服务器未对URL所带参数进行过滤和判断就会一起被传回用户的浏览器,触发反射型XSS。
存储型XSS
存储型XSS是将恶意代码保存至服务器数据库或文件上,显示到HTML页面中,当用户访问此界面时,就会触发并执行XSS代码。经常出现在用户评论区,留言板,以及论坛等处。
DOM XSS
DOM XSS 是发生在用户端DOM(Document Object Model文档对象模型)中的跨站漏洞,通过**本地**修改用户浏览器页面上的DOM树而执行,较为难以检测。
mXSS漏洞
- 通用型XSS(UXSS):利用浏览器或者浏览器来制造XSS条件并执行XSS代码。
- CSS中的反斜杠转义导致的mXSS :在CSS中,允许通过 \ 进行转义,正常情况下不会出现任何问题,但如果碰上innerHTML就会产生漏洞。
- CSS中的双引号实体或转义导致的mXSS :在CSS中 ","等加双引号之后就会导致此类问题。
- CSS中的属性名转义导致的mXSS :非HTML文档中的实体突变和HTML文档中的非HTML上下文的实体突变都会导致此漏洞。
- XSS钓鱼:将XSS和钓鱼结合在一起,通过JS模拟出登录框,使用XSS将用户信息发送出去。
······
攻击方式
- 盗用cookie,获取敏感信息;
- 植入Flash,通过cross domain 权限设置进一步获取更高权限,或利用Java等;
- 利用 iframe,frame,或Flash等方式,伪装成用户进行一些管理活动,如发微博,加好友,发私信等;
- 利用可被攻击的域或受到其他域信任的特点,以受信任的身份进行一些不允许的操作;
- 在访问量极大的网站页面上利用XSS漏洞攻击一些小网站,以达到DDos攻击的效果。
······
防护建议
- 对所有的输入中的 script,iframe 等进行严格检查,包括HTTP请求中的cookie中的变量以及头部中的变量等。
- 避免在cookie中泄露用户隐私,通过将cookie和系统IP绑定降低cookie泄露后的危险。
- 除了验证数据类型,还要验证数据长度,格式,范围和内容。
- 不仅在客户端做数据验证,在服务端也要做数据过滤。
- 对输出端进行安全检查。
- 确定接收内容规范化,去掉任何对远程内容的引用,尤其样式表和Javascript。
······
XSS Worm除了传播感染,恶作剧之外,还有瘫痪网络应用或窃取用户信息的可能。挖洞经验 | 从Twitter的XSS漏洞构造出Twitter XSS Worm - FreeBuf网络安全行业门户
版权归原作者 Nosery 所有, 如有侵权,请联系我们删除。