0x00 Intruder Scan
發(fā)送一個你想csrf_token的請求到intruder。
1)Positions設(shè)置如下:

2)Options設(shè)置如下:
Request Engine

options>Grep-Extract>add


3)payloads設(shè)置如下

這里payload type設(shè)置遞歸(Recursive grep),在Initial payload for first request設(shè)置一個有效的csrf_token值作為第一項(xiàng)

0x01 Active Scan with sqlmap
其實(shí)這個結(jié)合sqlmap有兩種方法,然后跟@c4bbage討論了下,我采用的也是他那個代碼,但是在注入的時候我發(fā)現(xiàn)在burpsuite里查看HTTP history(歷史記錄)里的token是沒有變化的,但是還是可以注入,剛開始挺納悶的,我以為他寫的那個代碼有問題,后來他說不是,在burpsuite里是看不到的,然后我也同意他說的,就是替換這個過程直接經(jīng)過宏功能替換了,不會顯示在歷史記錄里。我這里就說下第二種方法吧。第一種點(diǎn)這里。
1)首先是登錄csrf_token頁面,不需要攔截。然后選擇Options>Sessions>Add


2)接著會彈出一個窗口選擇Select macro>add

3)點(diǎn)擊add後會彈出兩個頁面如圖所示:

4)選擇2-3個頁面,第一個頁面是請求頁面,第二個頁面是post數(shù)據(jù)的時候的頁面,為了便于查看我這里添加了3個頁面。

5)選擇第二個頁面點(diǎn)擊Configure item,指定root,添加一個自定義token參數(shù)


6)最后配置完可以點(diǎn)擊Test macro看看我們配置成功了沒


7)如果以上配置成功,再選擇Scope選擇應(yīng)用范圍


8)接著就是放到sqlmap里去跑數(shù)據(jù)咯
如果是post頁面,這里是把post的數(shù)據(jù)保存到request.txt文件里,然后運(yùn)行命令如下:
./sqlmap.py -r request.txt –proxy=http://127.0.0.1:8080
如果是get頁面命令如下:
./sqlmap.py –u “www.target.com/vuln.php?id=1” –proxy=http://127.0.0.1:8080

0x02 Session Randomness Analysis Sequencer
請求攔截一個地址,在響應(yīng)內(nèi)容中如果有cookie,或者我們可以在sequencer中自定義配置token參數(shù)


然后點(diǎn)擊Start live capture進(jìn)行分析

等分析完即可生成報告,通過報告我們可以看出token是否可以偽造。