方法
找到一个具有许多功能的目标,包括讨论、发现、混音带、短裤、活动等等。我继续查看用户仪表板。
为什么我要在只有我是访问者的用户仪表板中寻找 xss?
好问题!如果我在那里找到 XSS,那么它将被认为是自我 XSS。这没有影响。将 self XSS 转换为有效的 XSS 将是一个挑战。
可以在仪表板外部共享的一个参数是profile picture url
. 所以我需要找到一种方法来上传恶意文件而不是 jpeg。
在做了一些研究之后,我发现 svg 被认为是一个图像,它也允许 javascript 执行。单击此处查看 svg_xss 演示
如果你查看这个页面的源代码,你会发现这个 svg dom 中有一个 script 标签
好的,所以我们现在知道我们必须上传 svg 文件而不是有效的 jpeg。
绕过过滤器
只有可以上传的有效文件是 jpeg 或 png 文件。
文件是如何被验证的?
- 他们正在创建一个仅发送图像标头的 api POST 请求。如果标头有效,则有另一个 POST 请求正在上传实际文件。没有对第二个 POST 请求进行验证。
- 在这里,我们可以只发送一个有效的 png,然后在第二个请求中,我们可以将 png 内容替换为 svg 有效负载。
成功绕过检查并上传图片后,没有提示框等待我关闭它