中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣用HTTP請求重寫實現JSON CSRF

發布時間:2021-12-14 10:06:35 來源:億速云 閱讀:174 作者:柒染 欄目:安全技術

怎樣用HTTP請求重寫實現JSON CSRF,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

下面介紹了作者在某漏洞測試項目中發現JSON類型跨站請求偽造漏洞(Cross-Site Request Forgery,CSRF)的過程。

通常來說,JSON CSRF漏洞主要在于Web應用本身的身份驗證機制上,簡單來看存在該漏洞,其HTTP請求須滿足以下三個條件:

1、Web應用身份驗證機制是基于Cookie形式的(Cookie形式的驗證機制本身存在CSRF攻擊風險);

2、Web應用的HTTP請求中無針對用戶的特定token保護;

3、Web應用的HTTP請求無同源策略保護。

如果具備上述三個條件,那么就可以從其它源中以創建AJAX請求的方式實現JSON請求偽造。注意,這只是實現JSON CSRF的主要條件,但有時候,即使是第2或第3個條件不滿足,也有可能實現JSON CSRF。

我最近發現的JSON CSRF漏洞

當我測試Web應用時,我會特意去分析身份驗證機制,如果其是基于Cookie形式的驗證方式,那么我就會直接測試CSRF漏洞。這里的情況和上述三個主要條件有點不同,這里只滿足第1,而第2第3個條件都不滿足。因為這里的Web應用HTTP請求中,針對不同用戶都在‘X-Auth-Token’頭中指定了不同的Token值,而且還對Origin頭進行了驗證。以下是Web應用的PUT請求:

怎樣用HTTP請求重寫實現JSON CSRF

怎樣用HTTP請求重寫實現JSON CSRF

怎樣用HTTP請求重寫實現JSON CSRF

平時,我從Twitter中學習到了一些請求測試方法,所以這里我就來嘗試嘗試:

1、把請求方法更改為GET,增加一些內容作為請求參數;

2、刪除請求中原本的用戶特定Token和一些驗證頭信息;

3、以相同的長度不同的Token驗證測試請求。

很幸運,其中的第2種方法是有效的,刪除請求中包含Token的‘X-Auth-Token’頭后,Web應用后端竟然還能正常響應:

怎樣用HTTP請求重寫實現JSON CSRF

到此,盡管Web應用存在Token頭驗證漏洞,但由于請求是PUT方式且Web后端還對 Origin 有驗證,所以我們還是無法深入利用。如果Web后端接受其它Origin頭就好了,那樣的話,至少可以用PUT方法偽造JSON形式的AJAX請求。怎么辦呢?

接著,我把PUT請求方法更改為POST,并把其中的Origin頭刪掉,然后出現了以下錯誤提示:

怎樣用HTTP請求重寫實現JSON CSRF

Web后端不允許POST方法?但沒關系,還可以用另外一種重寫方法來測試一下,我們在POST方法后加上_method=PUT試試看:

怎樣用HTTP請求重寫實現JSON CSRF

竟然是可以的!所以到此,CSRF的實現條件基本成立,可創建以下POC代碼進行深入測試:

<body onload='document.forms[0].submit()'><form action="https://<vulnerable-url>?_method=PUT" method="POST" enctype="text/plain"><input type="text" name='{"username":"blob","dummy":"' value='"}'><input type="submit" value="send"></form><!---This results in a request body of:{"username":"blob", "dummy": "="} -->

關于怎樣用HTTP請求重寫實現JSON CSRF問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高青县| 栖霞市| 开封县| 麻江县| 榆林市| 玉门市| 北碚区| 无棣县| 乌兰察布市| 南投县| 德化县| 聂拉木县| 光泽县| 景谷| 来凤县| 南投市| 庆元县| 兴安县| 涿州市| 仙居县| 白银市| 连州市| 甘孜县| 青龙| 秦安县| 杭锦后旗| 泉州市| 双鸭山市| 鄂伦春自治旗| 罗山县| 清水河县| 临猗县| 东光县| 温宿县| 盐亭县| 唐河县| 临安市| 遵化市| 灵川县| 曲周县| 扶沟县|