前端黑客之XSS

287 阅读4分钟

1.1 什么是XSS?

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)

的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意html

代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户

的特殊目的。

在Web漏洞中,XSS是出现最多的漏洞,没有之一。

1.2 攻击场景及形成原因

造成XSS漏洞的原因就是,攻击者的输入没有经过严格的控制,最终显示给来访的用

户,攻击者通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行恶意制造的

网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,

ActiveX,Flash或者甚至是普通的HTML。

攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、个人网页内容、会话

和cookie等各种内容。常见场景:

1.回帖,评论,用户输入在页面直接进行显示,没有进行过滤。

2.用户反馈,客服提问,输入的恶意脚本在后台进行了执行,窃取后台管理员cookie

等信息。

3.搜索展示搜索结果的时候直接展示用户输入。

1.3 XSS类型

XSS主要有三类:

反射性XSS(也叫非持久型XSS),

存储型XSS(也叫持久型XSS)和DOM XSS。

1.3.1 反射性XSS

通过GET、POST、referer等参数未加处理直接输出到页面执行。该类型是最为常见

的,攻击者主要利用此类型通过email、热度非常大的论坛、或者有针对性的某一用户

发送一个隐藏性的链接,让受害者进行点击触发。

1.3.2 存储型XSS

由攻击者输入恶意数据保存在数据库,再由服务器脚本程序从数据库中读取数据,然

后显示在公共显示的固定页面上,那么所有浏览该页面的用户都会被攻击。该类型攻

击性非常大,危险也非常大。

1.3.3 DOMXSS

由Javascript脚本动态创建、输出到页面造成的。该类型不容易发现,具有隐藏性的

特点,必需手工去发现。

1.4 XSS 有什么危害?

XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、插入

恶意内容、重定向用户、使用恶意软件劫持用户浏览器等等。

1.5 如何防御?

1、htmlspecialchars()函数。

用于转义处理在页面上显示的文本。

2、htmlentities()函数。

用于转义处理在页面上显示的文本。

3、strip_tags()函数。

过滤掉输入、输出里面的恶意标签。

4、header()函数。

使用header("Content-type: application/json");用于控制json数据的头部,不用于浏览。

5、urlencode()函数。

用于输出处理字符型参数带入页面链接中。

6、intval()函数

用于处理数值型参数输出页面中。

7、自定义函数。

在大多情况下,要使用一些常用的html标签,以美化页面显示,如留言、小纸条。

那么在这样的情况下,要采用白名单的方法使用合法的标签显示,过滤掉非法的字

符。

基于黑名单的过滤和基于白名单的过滤。后者的防御效果往往更好,对于用户在白名

单之外的输入,可以直接忽略。在构造白名单的过程中需要保证在不影响用户体验的

同时,尽可能杜绝一切不必要的输入内容。

Flash XSS的修复需要对相应的flash进行修改或升级替换。在cookie中加入httponly

属性可以在一定程度上保护用户的cookie,减少出现XSS时损失。

1.5.1 一些在线XSS游戏

http://prompt.ml/

答案:

https://github.com/cure53/xss-challenge-wiki/wiki/prompt.ml

http://escape.alf.nu/

答案:

http://blog.163.com/cmdbat@126/blog/static/17029212320149385547765/

https://xss-game.appspot.com/

答案:

http://www.freebuf.com/articles/web/36072.html

http://xss-quiz.int21h.jp/

答案:http://blog.163.com/cmdbat@126/blog/static/1702921232013112542728566/

推荐一些学习的网址:

•https://www.owasp.org/index.php/XSS

•https://www.google.com/about/appsecurity/

•http://www.freebuf.com/author/black-hole(看原理与剖析系列)

•http://html5sec.org/

•http://www.pkav.net/

•https://xssing.org/

•https://pockr.org

开了一个新群,期待感兴趣的小伙伴加入进来,一起学习交流解决问题,吹水广告勿扰

感兴趣的小伙伴也可以在评论去留言