知识概括
XSS漏洞通常存在有输入输出数据的位置上,通常为JS代码
1、XSS跨站-原理&攻击&分类等
2、XSS跨站-反射型&存储型&DOM型等
3、XSS跨站-攻击项目&XSS平台&Beef-XSS
XSS漏洞的原理
指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。
-数据交互的地方
get、post、headers
反馈与浏览
富文本编辑器
各类标签插入和自定义
-数据输出的地方
用户资料
关键词、标签、说明
文件上传
XSS漏洞的类型
反射型(非持久型)-条件苛刻用于较差:不存放在数据库中,每次访问都需要编写JS语句
存储型(持久型):将代码存入到数据库中,只要数据库没有删除并触发地址都会造成影响
DOM型:DOM型的与反射和存储型的差距就是由JS代码来实现数据的输入和输出,可以查看到源代码。
mXSS(突变型XSS) :将本地已经过滤掉的带有XSS漏洞的连接进行转发、连接和分享,当其他网址将数据进行解析有可能会将封闭的XSS过滤重新解析出来。
UXSS(通用型xss):是利用浏览器或者浏览器扩展漏洞来制造产生XSS代码的一种攻击类型。挖掘方法就是不断测试浏览器的各种功能(比如一个浏览器访问网页没有触发XSS漏洞,使用翻译功能时页面却会产生XSS漏洞)
Flash XSS:JS和SWF(Flash)可以相互调用,对SWF文件进行反编译(FFDec工具),然后寻找ExternalInterface.call函数(负责调用JS代码的函数),然后查看JS代码中是否有变量从而查找XSS漏洞。
黑盒思路:在网上查询带有flash动画的网站并下载xwf文件,进行反翻译,查看是否有调用JS的代码,利用代码查询漏洞
PDF-XSS:利用工具(PDF解析器)生成带有PDF的代码文件,然后上传到可上传的页面,当页面生成获取连接,访问则执行JS代码(如果访问时没有执行则代表过滤了JS代码)
XSS漏洞的危害
网络钓鱼,包括获取各类用户账号;
窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等;
强制弹出广告页面、刷流量等;
网页挂马;
进行恶意操作,如任意篡改页面信息,删除文章等
进行大量的客户端攻击,如ddos等
获取客户端信息,如用户的浏览历史、真实IP、开放端口等
控制受害者机器向其他网站发起攻击
结合其他漏洞,如csrf,实施进一步危害
提升用户权限,包括进一步渗透网站
传播跨站脚本蠕虫等
工具
XSS平台
通过xss平台可以很方便的获取页面的cookie或其他信息,如果网站存在cookie保护信息或者是session则无法登录管理员页面
Beef工具
kali上的一款工具,非常好用且实用(推荐)
案例
存储型实例
该页面是一个活动订单页面,订单中的信息会被保存到数据库中,从而利用JS代码可以实心XSS攻击。(JS代码可以写在任何地方,但是怕其他地方有过滤,所以一般写在文章、要求或是内容上。)
当对订单进行查询时,那么会触发存储的数据库信息,JS代码会被执行并进行弹窗。并且在页面代码中可以发现JS代码。
DOM型实例
这是一个CMS前端页面,对页面进行访问并给url传参数
可以发现url的参数1在路径访问时并没有被当做参数,而是直接被当做文件名访问,那么如果是传参是js代码的话就也会被当做文件名执行。
将在给url传JS代码参数(使用javascript让代码执行),再次访问获取弹窗。
XSS平台使用
XSS是页面平台,直接在页面进行登录即可
点击创建项目并选择默认模块代表获取cookie
会提供给我们获取cookie的代码,选择合适的代码进行写入
当管理员进行订单查询时,在XSS的平台上就会获取信息。
Beef
安装:sudo apt-get install beef-xss
调用beef:beef-xss 或者 sudo beef-xss
注意:第一次调用需要修改密码
密码修改: 如果忘记密码通过 vi /etc/beef-xss/config.yaml进行修改
使用:Web UI是管理页面 Example为注入代码
因为小编的kali是虚拟机,所以当我想在主机页面访问时,只要获取kali的ip,然后修改访问管理页面路径中的ip即可
将注入代码放入XSS漏洞的地方,在beef中就会显示ip地址,从而获取敏感信息或者页面跳转等功能。(功能还有很多,这里只会简单介绍一些关于XSS的基本使用方法)