XSS漏洞利用方式分析

发布于:2022-11-29 ⋅ 阅读:(280) ⋅ 点赞:(0)

XSS又叫CSS(Cross Site Script)跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS漏洞分类

1.反射型  

反射型XSS的原理 

反射型XSS也叫做非持久型XSS,攻击者在URL中插入XSS代码,服务端将URL中的XSS代码输出到页面上,攻击者将带有XSS代码的URL发送给用户,
用户打开后受到XSS攻击

也叫非储存型,就是通过get或post请求,被后端处理过的数据,并响应到前端页面上

2.存储型

存储XSS的原理
攻击者在页面上插入XSS代码,服务器端将数据存入数据库,当用户访问到存在XSS漏洞的页面时
服务器端从数据库中取出数据展示到页面上,导致XSS代码执行,达到攻击效果。

XSS代码被存储到服务器上的数据库里某张表的字段里,或者页面,或者某个上传文件里

3.DOM型

通过修改页面的DOM节点形成的XSS,效果跟反射型XSS类似,攻击者在URL中插入XSS代码,前端页面直接从URL中获取XSS代码并且输出到页面,导致XSS代码的执行,攻击者将带有XSS代码的URL发给用户,用户打开后受到XSS攻击。

 

仅仅在前端页面进行操作。

XSS攻击防范措施

XSS攻击主要防范措施有HttpOnly属性,安全编码等。

1.HttpOnly属性

HttpOnly属性是cookie值的一个属性,用于防止Cookie值被窃取。该属性由微软公司提出。现在已经成为浏览器支持的标准功能。HttpOnly属性防范XSS攻击的基本思想就是不允许JavaScript代码读取cookie值,即如果Cookie值的HttpOnly属性被指定为ture,则JavaScript代码读取值时会失败。

设置HttpOnly的方法

2.安全编码

从XSS攻击原理可以看出,XSS攻击一般输入一段JavaScript代码或者HTML代码。如果对攻击者输入的数据进行编码,消除数据中一些敏感的特殊字符,使攻击者输入的数据无法变成有效的JavaScript代码或HTML代码,就可以消除部分XSS攻击行为。PHP语言针对XSS攻击的安全编码函数有htmlentities 和 htmlspecialchars 等。

这些函数对特殊字符的安全编码方式如下:

小于号(<)转换成&lt  

大于号(>)转换成&gt

与符号(&)转换成&amp

双引号(")转换成&quot

单引号(') 转换成&#39

本文含有隐藏内容,请 开通VIP 后查看