跨站脚本攻击(XSS)

跨站脚本攻击(XSS)

漏洞描述

    web程序代码中对用户提交的参数未做过滤或者过滤不严格,导致参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者可以利用改漏洞执行恶意的html/js代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录,然后获取其登录凭证等。

攻击原理

    XSS原称未CSS(Cross-Site Scripting),因为和层叠样式表(Cascading Style Sheets)重名,所以该称为XSS(X一般有未知的含义,还有扩展的含义)。XSS攻击涉及到三方:攻击者,用户,web server.用户是通过浏览器访问web server上的网页,XSS攻击就是攻击者通过各种方法,在用户访问的网页中插入自己的脚本,让其在用户访问网页时,在浏览器中进行执行。攻击者通过插入的脚本的执行,来获取用户的信息,比如cookie,发送到攻击者自己的网站(跨站了),所以称为跨站脚本攻击。xss可以分为反射xss和持久型xss,还有DOM Based XSS。(简单来说:xss就是在用户浏览器中执行攻击者定制的脚本。)

    XSS攻击对web 服务器本身虽然无直接的危害,但是它借助网站进行传播,对网站用户进行攻击,窃取网站用户账号身份信息等,从而也会对网站产生较严重的威胁。

XSS攻击可导致以下危害

    1、钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者通过注入钓鱼JavaScript脚本以监控目标网站的表单输入,甚至攻击者基于DHTML技术发起更高级的钓鱼攻击。

    2、网站挂马:跨站时候,攻击者利用iframe标签嵌入隐藏的恶意网站,将被攻击者定向到恶意网站上、或者弹出恶意网站窗口等方式,进行挂马。

    3、身份盗用:Cookie是用户对于特定网站的身份严重标志,XSS攻击可以盗窃用户的cookie,从而利用改cookie盗取用户对该网站的操作权限。

    4、盗取网站用户信息:当窃取到用户cookie从而获取用户身份时,攻击者可以盗取到用户对网站的操作权限,从而查看用户隐私信息。

    5、垃圾信息发送:在社交网站社区中,利用xss漏洞借用被攻击者的身份发送大量的垃圾信息给 特点的目标群体。

    6、劫持用户web行为:一些高级的xss攻击甚至可以劫持用户的web行为,从而监视用户的浏览历史、发送与接收的数据等等。

    7、xss蠕虫:借助xss蠕虫病毒还可以用来打广告、刷流量、挂马、恶作剧、破坏数据、实施DDos攻击等。

攻击样例

image
改payload经过url进行编码,经过解码后如下。
image

修复处置建议

    xss漏洞本质上是一种html注入,也就是将html代码注入到网页中。那么其防御的根本就是在将用户提交的代码显示到页面上时候做好一系列的过滤和转义

    1、过滤输入的数据,对例如:“ ‘ ”,“ “ ”,” < “,” > “,” on* “,script、iframe等危险字符进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包含HTTP请求中的Cookie中的变量 ,HTTP请求头部中的变量等。

    2、不仅验证数据的类型,还要验证其格式、长度、范围和内容,

    3、不仅在客户端做数据的验证与过滤,管家的过滤不足在服务端进行。

    4、对输入到页面的数据进行相应的编码转换,如hHTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码操作,在各处的输出点也要进行检查。

posted @ 2022-11-19 01:25  ~寄语天涯客  阅读(207)  评论(0编辑  收藏  举报