点击关注公众号,知识干货及时送达👇
01
攻击原理
攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。
02
漏洞位置
一、数据交互处
get、post、cookies、headers
反馈与浏览
富文本编辑器
各类标签插入和自定义
二、数据输出处
用户资料
关键词、标签、说明
文件上传
03
攻击分类
根据Xss漏洞的形式可以分为:反射型、存储型、DOM型。
1、反射型XSS是将用户输入的内容作为代码让浏览器对其进行执行达到攻击的目的,一般需要引诱用户访问攻击者构建的URL。这种类型的攻击指发生在客户端上,并且需要访问带有恶意的参数特制的URL,所以也称之为非持久型XSS。一般容易出现在 web 页面。反射型XSS大多数是用来盗取用户的Cookie信息。
2、存储型XSS特点是持久化,代码是存储在服务器中的,个人信息或发表文章等地方,当用户访问的时候就会触发执行,从而用户受到相关的攻击。并且该类型的攻击主要发生在服务端,所有用户访问该页面都将受到相应的攻击,所以也称之为持久型XSS。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
3、DOM型xss 是纯前台的漏洞,型反射型和存储型都是通过后台输出,的XSS代码并不需要服务器解析响应的直接参与,触发XSS靠的就是浏览器端的DOM解析,可以认为完全是客户端的事情,无法通过WAF防护。
04
XSS漏洞危害
-
网络钓鱼,包括获取各类用户账号。
-
窃取用户cookies资料,从而获取用户隐私信息或利用用户身份对网站执行操作。
-
劫持用户(浏览器)会话。从而执行任意操作,例如非法转账、发表日志、邮件等。
-
强制弹出广告、刷流量等。
-
网页挂马。
-
进行恶意操作,如任意篡改页面信息、删除文章等。
-
进行大量的客户端攻击,如ddos等;
-
获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
-
控制受害者机器向其他网站发起攻击;
-
结合其他漏洞,如csrf,实施进一步危害;
-
提升用户权限,包括进一步渗透网站;
-
传播跨站脚本蠕虫等;
05
XSS防御
-
过滤:使用过滤器或者正则表达式将用户输入的数据进行过滤。
-
输入编码:对输入的数据进行编码,但以输入的无法进行编码。
-
输出编码:对输出的数据进行编码但是会增加工作量。
-
在cookie中加入httponly属性:如果在服务器端对 Cookie 设置了HttpOnly属性,那么js脚本就不能读取到cookie,但是浏览器还是能够正常使用cookie。
-
用户安全加固:加强用户的安全意识来减少攻击。
06
小结
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
- End -
原文始发于微信公众号(希石安全团队):【漏洞浅谈】XSS详解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论