DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

06-01 1070阅读

文章目录

  • 文件类型触发XSS
    • SVG-XSS
    • PDF-XSS
    • SWF-XSS
      • 一、制作swf-xss文件
      • 二、找到测试swf文件xss安全性
      • HTML-XSS
      • 其他:XML格式等
      • 总结
      • 功能逻辑触发XSS
        • PostMessage XSS
          • 模拟攻击环境
          • 黑盒/白盒
          • localStorage型xss(存储型Xss升级版)
            • 模拟攻击环境

              文件类型触发XSS

              SVG-XSS

              SVG(Scalable Vector Graphics)是一种基于XML的二维矢量图格式,和我们平常用的jpg/png等图片格式所不同的是SVG图像在放大或改变尺寸的情况下其图形质量不会有所损失,并且我们可以使用任何的文本编辑器打开SVG图片并且编辑它,目前主流的浏览器都已经支持SVG图片的渲染。

              文件:xxxx.svg

                 
                 alert(1)
              
              

              PDF-XSS

              1、创建PDF,加入动作JS

              2、通过文件上传获取直链

              3、直链地址访问后被触发

              工具:迅捷PDF编辑器试用版

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              SWF-XSS

              利用方式2种:

              1、上传swf文件可以做xss漏洞

              2、找到目标上存在的swf进行反编译后找xss漏洞

              工具:Adobe Flash Professional CS6

              浏览器:flash center

              一、制作swf-xss文件

              1、新建swf文件

              2、F9进入代码区域

              3、属性发布设置解析

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              //取m参数
              var m=_root.m;
              //调用html中Javascript中的m参数值
              flash.external.ExternalInterface.call(m);
              

              触发:?m=alert(/xss/)

              注:用浏览器:flash center

              二、找到测试swf文件xss安全性

              工具:JPEXS Free Flash Decompiler

              浏览器:可以试试QQ浏览器

              1、反编译swf文件

              2、查找触发危险函数

              3、找可控参数访问触发

              xss一是指执行恶意js,那么为什么说flash xss呢?是因为flash有可以调用js的函数,也就是可以和js通信,因此这些函数如果使用不当就会造成xss。常见的可触发xss的危险函数有:getURL,navigateToURL,ExternalInterface.call,htmlText,loadMovie等等

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              测试语句:http:xxxxxx/images/upload.swf

              注:能不能执行这跟浏览器的解析格式有关系,只要能得到这种文件(swf,pdf等)就可以,后续反编译

              HTML-XSS

              单纯在HTML代码中写XSS代码即可

              其他:XML格式等

              总结

              1. 从安全文件上传功能入手,尝试将其转换为 XSS 攻击点,红队玩法还可配合钓鱼手段。
              2. 通过文件上传获取文件的访问地址,尝试访问触发 XSS 攻击,但要注意浏览器的格式解析问题可能导致攻击失效。

              功能逻辑触发XSS

              PostMessage XSS

              一个用于在网页间安全地发送消息的浏览器API。它允许不同的窗口(例如,来自同一域名下的不同页面或者不同域名下的跨域页面)进行通信,而无需通过服务器。通常情况下,它用于实现跨文档消息传递(Cross-Document Messaging),这在一些复杂的网页应用和浏览器插件中非常有用。

              安全原因:当发送参数可控且接收方处理不当时,将导致XSS

              模拟攻击环境

              受害方:http://10.13.90.227/60/xssreceive.html

              ​ 其代码中监听 message 事件,会将接收到的消息中的 url 值赋给 location.href,这可 能导致执行恶意代码

              攻击方构造html代码:http://10.13.90.227/60/xss.html

              ​ 通过构造 xss.html 页面,利用 window.open 打开受害方页面,再使用 postMessage 方 法发送包含恶意代码的消息,从而触发 XSS 攻击。

              //打开http://192.168.1.4:82/60/xssreceive.html
              //分析源码:
              
                  // 添加事件监控消息
                  window.addEventListener("message", (event) => {
                    location.href = `${event.data.url}`;
                  });
              
              

              构造攻击代码:xss.html

              
              
              
                攻击方实现XSS界面
                
                
                  function openChild() {
                    child = window.open('xssreceive.html', 'popup', 'height=300px, width=300px');
                  }
                  function sendMessage() {
                    // 发送的数据内容
                    let msg = { url: "javascript:alert('yesgay')" };
                    // 发送消息到任意目标源
                    child.postMessage(msg, '*');
                  }
                
              
              
              
              
              
              
              

              黑盒/白盒

              黑盒挖掘

              如何去挖这种隐藏比较深的漏洞,这里强推一个国外白帽写的谷歌浏览器插件:

              https://github.com/fransr/postMessage-tracker安装之后,只要是当前页面创建了message事件监听,这个插件就会定位到其代码。

              白盒挖掘

              找代码中此操作类函数及关键字分析

              复盘:https://mp.weixin.qq.com/s/M5YIkJEoHZK6_I7nK6aj5w

              localStorage型xss(存储型Xss升级版)

              挖掘:先看目标应用localStorage

              1、先找能控制的键名键值(怎么找)

              黑盒挖掘:寻找输入点(如表单、搜索框、评论区等),构造测试用例找页面调用

              白盒挖掘:查找与localStorage相关的代码段分析数据存储及数据读取

              2、再找对键名键值做输出操作(怎么找)

              模拟攻击环境

              http://10.13.90.227/60/lo.html 读输入的内容存到浏览器中

              http://10.13.90.227/60/display.html 提取浏览器保存的内容显示

              先找能控制的键名键值(怎么找)

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              ① 看源码

                function saveData() {
                  const input = document.getElementById('userInput').value;
                  localStorage.setItem('userData', input);
                }
              
              

              分析输入是由userData控制的

              查看是否能控制

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              ② js中全局搜索userData

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              再找对键名键值做输出操作(怎么找)

              ③ 发现是display.html操作的这个值userData,所以我们只要修改这个值,然后打开这个页面就行

              攻击代码:

              DAY60:Web攻防-XSS跨站&文件类型&功能逻辑&SVG&PDF&SWF&PMessage&LocalStorage(2024小迪安全)

              访问http://10.13.90.227/60/display.html 显示弹窗

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码