XSS跨站脚本攻击

1.什么是XSS.

XSS全称(Cross Site Scripting)跨站脚本攻击,是最常见的Web应用程序安全漏洞之一。XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。

XSS的原理:就是在网页中嵌入客户端恶意脚本代码。 常用的攻击代码大部分为JAVA SCRIPT语言。

2.XSS的危害

截取用户cookie、框架钓鱼、挂马、键盘记录。

3.XSS的分类

反射型XSS:交互的数据一般不会被存在在数据库里面,只是简单的把用户输入的数据反射给浏览器,一次性,所见即所得。

储存型XSS:交互的数据会被存在在数据库里面,永久性存储,具有很强的稳定性。

DOM型XSS:不与后台服务器产生数据交互,通过前端的dom节点形成的XSS漏洞。

什么是DOM:DOM全称是Document Object Model,也就是文档对象模型。我们可以将DOM理解为,一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和修改文档内容、结构和样式。当创建好一个页面并加载到浏览器时,DOM就悄然而生,它会把网页文档转换为一个文档对象,主要功能是处理网页内容。故可以使用 Javascript 语言来操作DOM以达到网页的目的。<a href='#' οnclick="alert(1111)">what do you see?</a>

4.XSS可能存在的地方

HTML context、Attribute Context、URL Context、Style Context、Script Context。

5.XSS测试方法

工具:APPscan、AWVS、Burpsuite 等。

           半自动化工具:Burpsuite、firefox(hackbar)、XSSER XSSF等。

手工:最重要的是考虑那里有输入,输入的数据在什么地方输出。

6.同源策略

1.什么是同源策略.  为了安全考虑,所有浏览器都约定了'同源策略',同源策略禁止页面加载或执行与自身来源不同的域的任何脚本即不同域之间不能使用JS进行操作.比如: x.com域名下的js不能操作y.com域名下的对象.        那么为什么要有同源策略?比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登陆银行的时候获取用户名和密码.

2.不受同源策略限制:  <script src="...">  //加载本地js执行

                                   <img src="...">  //图片

                                   <link href="...">  //css

                                   <iframe src="...">  //任意资源

3.什么是跨域.          

当协议,主机(主域名,子域名),端口中的任意一项不相同时,称为不同域. 不同域之间请求数据的操作,叫做跨域操作.

4.同源策略修改.

后台设置好Access-Control-Allow-Origin,设置为*,既允许所有人访问.

7.XSS绕过

(1)对前端的限制可以尝试进行抓包重发或者修改前端的HTML。
(2)防止后台对输入的内容进行正则匹配来过滤输入,对于这样的过滤可以考虑大小写混合输入的方法。
 例:<sCRipT>alert('你打篮球')</sCrIPt>
(3)防止后台对输入的内容进行替换,采用拼拼凑的输入方法。
 例:<sc<script>ript>alert('你打篮球')</scr<script>ipt>
(4)使用注释来干扰后台对输入内容的识别。
 例:<sc<!--test-->ript>alert('你打篮球')</scr<!--tshauie-->ipt>
(5)编码
 思路:后台有可能会对代码中的关键字进行过滤,但我们可以尝试将关键字进行编码后在插入,浏览器对改编码进行识别时,会翻译成正常的代码。(注意:编码在输出时是否会被正常识别和翻译才是关键,不是所有的编码都是可以的)

  例:使用事件属性onerror(): <img src=# οnerrοr="alert('xiaoli')"/>

使用HTML进行编码: <img src=x οnerrοr="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#121;&#97;&#110;&#103;&#115;&#104;&#117;&#97;&#110;&#103;&#39;&#41;"/>

(6) htmlspecialchars()函数

htmlspecialchars()函数的作用:  & (和号)成为 &amp
                                                  " (双引号)成为 &quot
                                                  ’ (单引号)成为&#039
                                                  < (小于)成为 &lt
                                                  >(大于)成为 &gt

8.XSS防范

XSS防御的总体思路是:对输入进行过滤,对输出进行html实体编码.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值