非预期文件上传TXT导致存储型XSS奇葩案例

xioy
2024-06-07 / 0 评论 / 5 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年10月04日,已超过48天没有更新,若内容或图片失效,请留言反馈。

1. 瞎逛

1.1 常规测试

站点首页。

有注册功能,那就注册成为尊贵的用户吧。

进入个人中心发现用户的头像处可以上传文件。

1.2 分析数据包

先上传一个正常图片看看数据包。
发现上传头像后站点会有两步操作:第一步对上传的文件进行检验是否为合规文件,第二步对图片进行裁剪,最后把裁剪后的图片设置为头像。

在设置头像的数据包中发现图片信息的上半段为二次渲染的标记,下半段为图片信息。

知道了逻辑那就直接在第二步中修改文件信息吧。

2. 开测

2.1 尝试

通过插件知道这是一个php的站。

上传一个纯代码文件,在第一步中就失败并返回只能上传jpg、jpeg和png格式的文件的提示,难道是对文件头有限制?

上传一个正常的图片。通过第一步的检验后,进入第二步裁剪完成后拦截上传头像的数据包,转发到repeater模块把图片名字cropper.jpg改为cropper.php,在图片信息末尾加上恶意代码然后放包。

返回的还是只能上传jpg、jpeg和png格式的文件。

2.2 迷糊

把文件信息改成123456看看效果什么样。

能显示啊这是为什么?

把文件末尾信息改成

123456<?php @eval($_POST['1']);?>123456

访问后只保留了两个123456,中间的代码被删除了。头回遇到这种情况啊。

3. 存储型XSS

3.1 开眼

虽然php没法利用了,但是至少还有html。可以弄一个存储XSS保底也还行,传上去访问文件竟然不显示。

G,啥都没有。闲的无聊把文件后缀改成txt重新发包。

访问目标文件,属实给我开眼了。非预期文件上传TXT导致存储型XSS!闻所未闻,想都不敢想的事啊!

0

评论 (0)

取消