#知识点:
1、XSS跨站-另类攻击手法分类
2、XSS跨站-权限维持&钓鱼&浏览器等
1、原理
指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。
-数据交互的地方 get、post、headers 反馈与浏览 富文本编辑器 各类标签插入和自定义
-数据输出的地方 用户资料 关键词、标签、说明 文件上传
2、分类
反射型(非持久型)
存储型(持久型)
DOM型 mXSS(突变型XSS)
UXSS(通用型xss)
Flash XSS、UTF-7 XSS、MHTML XSS、CSS XSS、VBScript XSS
3、危害
网络钓鱼,包括获取各类用户账号;
窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等; 强制弹出广告页面、刷流量等;
网页挂马;
进行恶意操作,如任意篡改页面信息、删除文章等;
进行大量的客户端攻击,如ddos等;
获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
控制受害者机器向其他网站发起攻击;
结合其他漏洞,如csrf,实施进一步危害;
提升用户权限,包括进一步渗透网站; 传播跨站脚本蠕虫等
4、修复
见绕过课程对比参考
#XSS跨站系列内容:
1、XSS跨站-原理&分类&手法
2、XSS跨站-探针&利用&审计
3、XSS跨站-另类攻击手法利用
4、XSS跨站-防御修复&绕过策略XSS-后台植入Cookie&表单劫持
1、MXSS(突变型XSS)
#MXSS:https://www.fooying.com/the-art-of-xss-1-introduction/
简单来说,MXSS是放在浏览器上是没有伤害的payload(浏览器进行了过滤),然后把这个浏览器信息通过用户端发给QQ用户(QQ聊天窗口会有个预览功能,会把这个payload从新恢复,从而形成跨站),在绿色的网站(www.baidu.com等)就可以直接显示绿标,从而执行了MXSS代码。
这种漏洞是产生在浏览器的漏洞,并不是在网上的漏洞。所以比较难被挖掘。而且这个QQ还要符合版本,现在基本上不能安装这个版本了。所以这个漏洞基本上没有什么大的作用。
2、UXSS- Edge&CVE-2021-34506
UXSS全称Universal Cross-Site Scripting
UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型。
造成这个漏洞不是浏览器自身的问题,比如,Edge浏览器启用翻译功能时导致JS语句被调用执行
https://www.bilibili.com/video/BV1fX4y1c7rX
这个漏洞攻击的不是网站,而是浏览器自身。
这个是通过百度,bing,或者其他搜索引擎去搜索跨站语句“><img src=x onerror=alert(1)>”的时候,当使用到了浏览器的翻译功能的时候,这个语句会被执行。所以这个漏洞不是针对网站的,是针对浏览器的。
【例】:放在低版本的edge浏览器中(版本 91.0.864.37)
访问http://127.0.0.1:8081/web/edge.html
很明显进行了弹窗,启用浏览器翻译时,也进行了弹窗
源代码:
<b><u>行之在线测试 </u></b>
<br>
Políticas de Privacidade
Usaremos seus dados pessoais para resolver disputas, solucionar problemas e aplicar nossos Termos e Condições de Uso.
<br>
Para prevenir abusos no app/site, o Badoo usa decisões automáticas e moderadores para bloquear contas, como parte de seu procedimento de moderação. Para isso, nós conferimos contas e mensagens para encontrar conteúdo que indicam quebra dos nossos Termos e Condições de Uso. Isso é feito através de uma
<b><u>OUR PAYLOAD IN TEXT FORM </u></b>
<br>
<br>
"><img src=x onerror=alert(1)>
//这里写Payload
<br>
<br>
<br>
3、FlashXSS-PHPWind&SWF反编译
swf是小动画一些视频类的后缀
swf是可以播放视频,swf播放哪个视频也会给他传参数。也就是swf格式的文件,他是有自身的语言和编写的,而这个语言里面能接受JavaScript代码。
js可以调用swf文件,控制swf的播放,swf也可以调用js。
白盒黑盒都是通过搜索swf后缀文件来进行测试。
白盒分析,找相关swf文件:D:\phpstudy_pro\WWW\phpwind9.0_5275\phpwind\www\res\js\dev\util_libs\swfupload\Flash\swfupload.swf这个文件,直接打开是乱码
利用反编译工具ffdec_15.1.0,可以对swf进行反编译处理。
主要看xx.swf文件的脚本代码:
swf调用js代码的函数:ExternalInterface.call 执行JS代码
在swf中,ExternalInterface.call函数调用JavaScript代码。
参考:https://www.cnblogs.com/mfrbuaa/p/3991385.html
代码:使用ExternalInterface函数调用JavaScript代码
# flex代码:
<mx:Button id="btn" label="Button" click="hello()"/>
<mx:Script>
<![CDATA[
private function hello():void{
ExternalInterface.call("sayHello");
}
]]>
</mx:Script>
# JavaScript代码
---------------------
function sayHello(){
alert("Hello from JavaScript!");
}
使用sayhello()来调用弹出Hello from JavaScript!
使用sayhello()来调用JavaScript代码。
所以,在反编译的代码中搜索ExternalInterface.call,这个函数是用来调用JavaScript代码的
其中:ExternalInterface.call(param1,EscapeMessage(param3),EscapeMessage(param2),EscapeMessage(param4));
括号里面的,都可以通过JavaScript来实现,看括号里面有没有变量
在D:\phpstudy_pro\WWW\phpwind9.0_5275\phpwind\www\res\js\dev\util_libs\jPlayer\Jplayer.swf发现关键代码 ExternalInterface.call(this.jQuery,"jPlayerFlashEvent",JplayerEvent.JPLAYER_READY,this.extractStatusData(this.commonStatus));
通过this.jQuery这个变量进行传参,
追踪变量jQuery,关键性代码:this.jQuery = loaderInfo.parameters.jQuery + "(\'#" + loaderInfo.parameters.id + "\').jPlayer";
loaderInfo.parameters.jQuery这个代码可以在
参考https://blog.csdn.net/wohuazhen/article/details/20639521
其实loaderInfo.parameters是在调用传参给swf,参数就是jQuery
那么就可以构造payload:
127.0.0.1:8104/res/js/dev/util_libs/jPlayer/Jplayer.swf?jQuery=alert(1))}catch(e){}//
只有在火狐中弹窗,在其他的地方就显示下载了。
黑盒怎么测试呢,可以寻找网站有没有swf格式文件,然后下载下来进行反编译,看他是否有安全问题
google搜索:inurl:.swf
比如:地址mickeymouse24.com/games/
① 下载swf文件
② 反编译
③ 查看里面是否有js代码的调用。。。。。
4、PDFXSS-PDF动作添加&文件上传
用到迅雷PDF 新建页面,视图 - 页面浓缩图
点击浓缩图,右键属性,属性里面 - 动作
选中,新添加JavaScript代码
新增代码app.alert(1);
然后保存为1.pdf,制作完成。
直接打开这个pdf没有任何问题,但是把它放在浏览器进行访问,就会进行弹窗
只有火狐不进行弹窗
那么这个漏洞怎么利用:
很多网站有文件上传功能,把带有跨站代码的PDF进行上传上去,然后得到文件的下载地址(必须是直连地址),把地址发给别人访问,如果这个平台没有做PDFXSS的漏洞进行过滤,当别人打开这个链接,这个PDF就会弹窗,这样就可以做成一个钓鱼地址。
可以测试上传PDF文件的平台,比如腾讯文档、百度网盘等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话