溫馨提示×

溫馨提示×

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

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

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

發(fā)布時(shí)間:2021-10-12 15:17:24 來源:億速云 閱讀:140 作者:柒染 欄目:大數(shù)據(jù)

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

前言

CSRF tokens是服務(wù)器生成的一串隨機(jī)值,其主要作用是防止表單重復(fù)提交以及請求偽造攻擊。由于該生成值具有隨機(jī)性,一次性,并且是基于服務(wù)器端的前一個(gè)請求生成的,因此黑客幾乎不可能偽造它。

Burp Suite

雖說無法偽造,但并不代表我們就不能繞過它。這里,不得不提及一款web滲透神器Burp 
Suite。在Burp上有多種配置其使用宏來繞過HTML表單上CSRF tokens的方法,例如我們可以使用Burp Active 
Scans,Burp Intruder,Burp Repeater,甚至Burp 
Proxy。還有專門用于Intruder模塊的Grep-Extract和pitchfork攻擊類型。如果你還覺得不夠,Burp完美的擴(kuò)展性支持你開發(fā)自己的Burp插件。

除了Burp外,另一款神器Sqlmap也為我們提供了類似的功能。Sqlmap中有一個(gè)–csrf-token和–csrf-url參數(shù),可用于繞過CSRF tokens?;蛘吣阋部梢韵裎覄傉f的那樣,配置Burp使用–proxy通過Burp運(yùn)行sqlmap。

但今天我要介紹另一種繞過方法,即使用Python CGIHTTPServer。

實(shí)驗(yàn)環(huán)境

我的測試環(huán)境是一個(gè)簡單的PHP+mysql,我可以登錄并訪問受限區(qū)域。我在這里上傳了PHP代碼,你可以下載進(jìn)行測試。代碼可能寫的并不完美,但用于測試目的應(yīng)該問題不大。

CSRF tokens是隨機(jī)生成的數(shù)字的SHA256哈希值,并且每個(gè)HTTP請求的哈希值都不同。

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

因此,如果不對Burp進(jìn)行針對性的配置,它將無法檢測到該問題的存在。

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

sqlmap也同樣。

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

我使用–technique,–dbms和-p選項(xiàng)來加速掃描。由于這只是一個(gè)簡單的基于布爾的SQLi,因此–level 
1(默認(rèn)值)就足夠了。但是,如果憑據(jù)不正確的話,則必須將–risk設(shè)置為3才行。因?yàn)橹挥酗L(fēng)險(xiǎn)等級為3的情況下,基于布爾的SQLi才能被檢測到。基于布爾的SQLi是非常危險(xiǎn)的,因?yàn)樗鼈兛梢允谷魏螚l件為真。例如當(dāng)UPDATE或DELETE語句的WHERE子句存在這種注入,攻擊者就可以實(shí)現(xiàn)更改數(shù)據(jù)庫中用戶密碼,轉(zhuǎn)儲憑據(jù)等。

這里,我使用sqlmap的SQLi –csrf-token =“mytoken”選項(xiàng),檢測到了一個(gè)基于OR的SQLi:

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

這是一個(gè)登錄驗(yàn)證表單,顯然這里是一個(gè)SELECT語句,這意味著風(fēng)險(xiǎn)等級3沒有危害。

當(dāng)然,如果你有有效憑據(jù),它還容易受到基于AND的SQLi攻擊。但即使我擁有有效憑據(jù),我也會先用另一個(gè)(有效)用戶名來進(jìn)行測試,先找到基于OR的SQLi。這樣做可以避免賬戶被以外的鎖定。

此外,使用sqlmap的SQLi –csrf-token =“mytoken”選項(xiàng),我還檢測到了一個(gè)基于AND的SQLi:

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

CGIHTTPServer

首先,我們來創(chuàng)建CGI腳本:

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

這個(gè)腳本需要?jiǎng)?chuàng)建在folder_whatever/cgi-bin/目錄中。我們將其稱為mask.py,并確保其是可執(zhí)行的。創(chuàng)建完成后,我們從“folder_whatever”目錄中運(yùn)行“python
-m CGIHTTPServer”。默認(rèn)情況下,它將偵聽8000/tcp端口。

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

你可以使用正確的密碼對其進(jìn)行測試:

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

以及使用一個(gè)錯(cuò)誤密碼:

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

現(xiàn)在,我們無需對Burp和sqlmap進(jìn)行特定配置,就能輕松的檢測到安全漏洞。

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御

看完上述內(nèi)容,你們掌握如何使用Python CGIHTTPServer繞過注入時(shí)的CSRF Token防御的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI