啟動(dòng)方式:java -jar BurpLoader.jar
使用指南(需翻墻):https://t0data.gitbooks.io/burpsuite/content/
主要參考這一章的內(nèi)容:
Burp Scanner的功能主要是用來(lái)自動(dòng)檢測(cè)web系統(tǒng)的各種漏洞乌奇,我們可以使用Burp Scanner代替我們手工去對(duì)系統(tǒng)進(jìn)行普通漏洞類(lèi)型的滲透測(cè)試益楼,從而能使得我們把更多的精力放在那些必須要人工去驗(yàn)證的漏洞上。
在使用Burp Scanner之前,我們除了要正確配置Burp Proxy并設(shè)置瀏覽器代理外潘靖,還需要在Burp Target的站點(diǎn)地圖中存在需要掃描的域和URL模塊路徑。如下圖所示:?
當(dāng)Burp Target的站點(diǎn)地圖中存在這些域或URL路徑時(shí)竖螃,我們才能對(duì)指定的域或者URL進(jìn)行全掃描或者分支掃描记舆。下面我們就來(lái)整體的學(xué)習(xí)一下,一次完整的Burp Scanner使用大概需要哪些步驟凳鬓。
本章的主要內(nèi)容有:
Burp Scanner基本使用步驟
Burp Scanner掃描方式
Burp Scanner掃描報(bào)告
Burp Scanner掃描控制
Burp Scanner可選項(xiàng)設(shè)置
Burp Scanner基本使用步驟
Burp Scanner基本使用主要分為以下15個(gè)步驟茁肠,在實(shí)際使用中可能會(huì)有所改變,但大體的環(huán)節(jié)主要就是下面的這些缩举。 1.確認(rèn)Burp Suite正常啟動(dòng)并完成瀏覽器代理的配置垦梆。 2.進(jìn)入Burp Proxy,關(guān)閉代理攔截功能仅孩,快速的瀏覽需要掃描的域或者URL模塊托猩。 3.當(dāng)我們?yōu)g覽時(shí),默認(rèn)情況下辽慕,Burp Scanner會(huì)掃描通過(guò)代理服務(wù)的請(qǐng)求站刑,并對(duì)請(qǐng)求的消息進(jìn)行分析來(lái)辨別是非存在系統(tǒng)漏洞。同時(shí)鼻百,當(dāng)我們打開(kāi)Burp Target時(shí)绞旅,也會(huì)在站點(diǎn)地圖中顯示請(qǐng)求的URL樹(shù)摆尝。?
4.我們可以有針對(duì)性的選擇Burp Target站點(diǎn)地圖下的某個(gè)節(jié)點(diǎn)上鏈接URL上,彈出右擊菜單因悲,進(jìn)行Active Scan堕汞。然后在彈出的確認(rèn)框中,點(diǎn)擊【YES】即進(jìn)行掃描整個(gè)域晃琳。?
6.這時(shí)讯检,我們打開(kāi)Burp Scanner 選項(xiàng)卡,在隊(duì)列子選項(xiàng)卡中卫旱,會(huì)看到當(dāng)前掃描的進(jìn)度人灼。如果我們雙擊URL,則彈出掃描結(jié)果的提示信息顾翼。?
7.如果我們?cè)贐urp Target站點(diǎn)地圖下選擇某個(gè)子目錄進(jìn)行掃描投放,則會(huì)彈出更優(yōu)化的掃描選項(xiàng),我們可以對(duì)選項(xiàng)進(jìn)行設(shè)置适贸,指定哪些類(lèi)型的文件不再掃描范圍之內(nèi)灸芳。?
8.當(dāng)我們?cè)俅畏祷氐紹urp Scanner 選項(xiàng)卡界面時(shí),選擇的子目錄已經(jīng)開(kāi)始在掃描中拜姿,其掃描的進(jìn)度依賴(lài)于需要掃描內(nèi)容的多少烙样。 9.如果我們沒(méi)有定義了目標(biāo)作用域(Target Scope),最簡(jiǎn)單的方式就是在Burp Target站點(diǎn)地圖上右擊彈出菜單中添加到作用域蕊肥,然后自動(dòng)進(jìn)行掃描谒获。?
10.然后進(jìn)入Burp Scanner的Live scanning子選項(xiàng)卡,在Live Active Scanning控制塊中壁却,選擇Use suite scope究反,這樣,Burp Scanner將自動(dòng)掃描經(jīng)過(guò)Burp Proxy的交互信息儒洛。?
11.當(dāng)我們?cè)俅问褂脼g覽器對(duì)需要測(cè)試的系統(tǒng)進(jìn)行瀏覽時(shí),Burp Scanner不會(huì)發(fā)送額外的請(qǐng)求信息狼速,自動(dòng)在瀏覽的交互信息的基礎(chǔ)上琅锻,完成對(duì)請(qǐng)求消息的漏洞分析。 12.此時(shí)向胡,當(dāng)我再返回到Burp Target站點(diǎn)地圖界面恼蓬,將提示系統(tǒng)可能存在的漏洞情況,以及處理這些漏洞的建議僵芹。?
13.同時(shí)处硬,我們也可以在漏洞提示的請(qǐng)求信息上,將消息發(fā)送到Burp Repeater模塊拇派,對(duì)漏洞進(jìn)行分析和驗(yàn)證荷辕。?
14.隨著B(niǎo)urp Scanner掃描的進(jìn)度凿跳,在Burp Target站點(diǎn)地圖界面上的issues模塊中的漏洞信息也會(huì)不斷的更新。 15.當(dāng)Burp Scanner掃描完成之后疮方,我們?cè)贐urp Target站點(diǎn)地圖的選擇鏈接右擊控嗜,依次選擇issues-->report issues for this host 即可導(dǎo)出漏洞報(bào)告。?
Burp Scanner掃描方式
通過(guò)以上的操作步驟我們可以學(xué)習(xí)到骡显,Burp Scanner掃描方式主要有兩種:主動(dòng)掃描和被動(dòng)掃描
主動(dòng)掃描(Active Scanning)
當(dāng)使用主動(dòng)掃描模式時(shí)疆栏,Burp 會(huì)向應(yīng)用發(fā)送新的請(qǐng)求并通過(guò)payload驗(yàn)證漏洞。這種模式下的操作惫谤,會(huì)產(chǎn)生大量的請(qǐng)求和應(yīng)答數(shù)據(jù)壁顶,直接影響系統(tǒng)的性能,通常使用在非生產(chǎn)環(huán)境溜歪。它對(duì)下列的兩類(lèi)漏洞有很好的掃描效果:
客戶端的漏洞若专,像XSS、Http頭注入痹愚、操作重定向富岳;
服務(wù)端的漏洞,像SQL注入拯腮、命令行注入窖式、文件遍歷。
對(duì)于第一類(lèi)漏洞动壤,Burp在檢測(cè)時(shí)萝喘,會(huì)提交一下input域,然后根據(jù)應(yīng)答的數(shù)據(jù)進(jìn)行解析琼懊。在檢測(cè)過(guò)程中阁簸,Burp會(huì)對(duì)基礎(chǔ)的請(qǐng)求信息進(jìn)行修改,即根據(jù)漏洞的特征對(duì)參數(shù)進(jìn)行修改哼丈,模擬人的行為启妹,以達(dá)到檢測(cè)漏洞的目的。 對(duì)于第二類(lèi)漏洞醉旦,一般來(lái)說(shuō)檢測(cè)比較困難饶米,因?yàn)槭前l(fā)生在服務(wù)器側(cè)。比如說(shuō)SQL注入车胡,有可能是返回?cái)?shù)據(jù)庫(kù)錯(cuò)誤提示信息檬输,也有可能是什么也不反饋。Burp在檢測(cè)過(guò)程中匈棘,采用各個(gè)技術(shù)來(lái)驗(yàn)證漏洞是否存在丧慈,比如誘導(dǎo)時(shí)間延遲、強(qiáng)制修改Boolean值主卫,與模糊測(cè)試的結(jié)果進(jìn)行比較逃默,已達(dá)到高準(zhǔn)確性的漏洞掃描報(bào)告鹃愤。
被動(dòng)掃描(Passive Scanning)
當(dāng)使用被動(dòng)掃描模式時(shí),Burp不會(huì)重新發(fā)送新的請(qǐng)求笑旺,它只是對(duì)已經(jīng)存在的請(qǐng)求和應(yīng)答進(jìn)行分析昼浦,這對(duì)系統(tǒng)的檢測(cè)比較安全,尤其在你授權(quán)訪問(wèn)的許可下進(jìn)行的筒主,通常適用于生成環(huán)境的檢測(cè)关噪。一般來(lái)說(shuō),下列這些漏洞在被動(dòng)模式中容易被檢測(cè)出來(lái):
提交的密碼為未加密的明文乌妙。
不安全的Cookie的屬性使兔,比如缺少的HttpOnly和安全標(biāo)志。
cookie的范圍缺失藤韵。
跨域腳本包含和站點(diǎn)引用泄漏虐沥。
表單值自動(dòng)填充,尤其是密碼泽艘。
SSL保護(hù)的內(nèi)容緩存欲险。
目錄列表。
提交密碼后應(yīng)答延遲匹涮。
session令牌的不安全傳輸天试。
敏感信息泄露,像內(nèi)部IP地址然低,電子郵件地址喜每,堆棧跟蹤等信息泄漏。
不安全的ViewState的配置雳攘。
錯(cuò)誤或者不規(guī)范的Content-type指令带兜。
雖然被動(dòng)掃描模式相比于主動(dòng)模式有很多的不足,但同時(shí)也具有主動(dòng)模式不具備的優(yōu)點(diǎn)吨灭,除了前文說(shuō)的對(duì)系統(tǒng)的檢測(cè)在我們授權(quán)的范圍內(nèi)比較安全外刚照,當(dāng)某種業(yè)務(wù)場(chǎng)景的測(cè)試,每測(cè)試一次都會(huì)導(dǎo)致業(yè)務(wù)的某方面問(wèn)題時(shí)喧兄,我們也可以使用被動(dòng)掃描模式无畔,去驗(yàn)證問(wèn)題是否存在,減少測(cè)試的風(fēng)險(xiǎn)繁莹。
Burp Scanner掃描報(bào)告
當(dāng)我們對(duì)一個(gè)系統(tǒng)進(jìn)行掃描完畢后,通常需要生成掃描報(bào)告特幔,Burp Scanner支持的報(bào)告類(lèi)型有HTML和XML兩種格式咨演。無(wú)法何種格式的掃描報(bào)告,其內(nèi)容基本一致蚯斯,主要由以下部分組成薄风。報(bào)告樣例可以點(diǎn)擊Burp Scanner report查看.
除了頭部的綜述和目錄外饵较,每一個(gè)漏洞的章節(jié)通常包含: 1.序號(hào) 表示漏洞的序號(hào),如果有多個(gè)同樣的漏洞遭赂,報(bào)告中只會(huì)有一個(gè)序號(hào)循诉。 2.漏洞的類(lèi)型,可以近似地理解與OWASP的類(lèi)型相對(duì)應(yīng)撇他。 3.漏洞名稱(chēng)茄猫,具體可參考 Issue Definitions子選項(xiàng)卡。 4.漏洞路徑困肩,漏洞對(duì)應(yīng)的多個(gè)URL鏈接划纽。 5.漏洞的發(fā)生點(diǎn),通常為參數(shù)名锌畸。 6.問(wèn)題的描述(Issue background) 描述漏洞發(fā)生的成因 7.解決建議(Remediation background)提供解決的思路和建議 8.請(qǐng)求消息和應(yīng)答消息的詳細(xì)信息勇劣。
如果我們想對(duì)某次的掃描結(jié)果進(jìn)行保存,需要Burp Target 的站點(diǎn)地圖子選項(xiàng)卡的問(wèn)題面板(Issue)上右擊潭枣,在彈出的菜單中選擇report Issues進(jìn)行設(shè)置并保存即可比默。(注意,如果想導(dǎo)出所有的漏洞盆犁,需要選中所有的問(wèn)題列表) 具體導(dǎo)出漏洞報(bào)告的步驟如下: 1.選中需要保存的漏洞命咐,右擊彈出菜單,如下圖:?
2.在彈出的對(duì)話框中選擇需要保存的漏洞報(bào)告格式蚣抗。?
?3.選擇漏洞明細(xì)包含內(nèi)容侈百。?
?4.請(qǐng)求消息和應(yīng)答消息設(shè)置。?
?5.選擇報(bào)告包含的哪些漏洞翰铡。?
?6.最后钝域,指定報(bào)告存放位置、報(bào)告名稱(chēng)等屬性锭魔。?
Burp Scanner掃描控制
在對(duì)系統(tǒng)做主動(dòng)掃描時(shí)例证,當(dāng)我們激活Burp Scanner,掃描控制的相關(guān)設(shè)置也同時(shí)開(kāi)始了迷捧。如下圖所示织咧,當(dāng)我們?cè)贐urp Target 的站點(diǎn)地圖上的某個(gè)URL執(zhí)行Actively scan this host時(shí),會(huì)自動(dòng)彈出過(guò)濾設(shè)置漠秋。?
?在這里笙蒙,我們可以設(shè)置掃描時(shí)過(guò)濾多媒體類(lèi)型的應(yīng)答、過(guò)濾js庆锦、css捅位、圖片等靜態(tài)資源文件。當(dāng)我們點(diǎn)擊【next】按鈕,進(jìn)入掃描路徑分支的選擇界面艇搀。如下圖:?
以上是Burp Scanner開(kāi)始掃描前的控制尿扯,當(dāng)我們?cè)O(shè)置完這些之后,將正式進(jìn)入掃描階段焰雕。此時(shí)衷笋,在Scan queue隊(duì)列界面,會(huì)顯示掃描的進(jìn)度矩屁、問(wèn)題總數(shù)辟宗、請(qǐng)求數(shù)和錯(cuò)誤統(tǒng)計(jì)等信息。?
在此界面上档插,我們可以選中某個(gè)記錄慢蜓,在右擊的彈出菜單中,對(duì)掃描進(jìn)行控制郭膛。比如取消掃描晨抡、暫停掃描、恢復(fù)掃描则剃、轉(zhuǎn)發(fā)其他Burp組件等耘柱。如下圖:?
同時(shí),在Results界面棍现,自動(dòng)顯示隊(duì)列中已經(jīng)掃描完成的漏洞明細(xì)调煎。?
在每一個(gè)漏洞的條目上,我們可以選中漏洞己肮。在彈出的右擊菜單中士袄,依次選擇Set severity,對(duì)漏洞的等級(jí)進(jìn)行標(biāo)識(shí)谎僻。也可以選擇Set confidence娄柳,對(duì)漏洞是否存在或誤報(bào)進(jìn)行標(biāo)注。
另外艘绍,在Live Scanning選項(xiàng)卡中赤拒,我們也可以對(duì)請(qǐng)求的域、路徑诱鞠、IP地址挎挖、端口、文件類(lèi)型進(jìn)行控制航夺,如下圖:?
如果你選中了Use suite Scope蕉朵,則指定條件與你在Burp Target中的Scope配置完全一致,如果你選擇了Use customs scope阳掐,則可以自己定義Scope始衅,對(duì)于Scope的詳細(xì)配置堪伍,請(qǐng)參考Burp Target中的Scope配置相關(guān)章節(jié)。
Burp Scanner可選項(xiàng)設(shè)置
通過(guò)前幾節(jié)的學(xué)習(xí)觅闽,我們已經(jīng)知道Burp Scanner有主動(dòng)掃描和被動(dòng)掃描兩個(gè)掃描方式,在Options子選項(xiàng)卡中涮俄,主要是針對(duì)這兩種掃描方式在實(shí)際掃描中的掃描動(dòng)作進(jìn)行設(shè)置蛉拙。具體的設(shè)置包含以下部分:
攻擊插入點(diǎn)設(shè)置(Attack Insertion Points)?
Burp Scanner在掃描中,基于原始的請(qǐng)求消息彻亲,在每一個(gè)插入點(diǎn)構(gòu)造參數(shù)孕锄,對(duì)原數(shù)據(jù)進(jìn)行替換,從而去驗(yàn)證系統(tǒng)漏洞的存在性苞尝。通常畸肆,以下位置都會(huì)被Burp Scanner選擇為插入點(diǎn)。
URL請(qǐng)求參數(shù)
Body參數(shù)(比如form表單的值宙址,上傳文件轴脐、XML參數(shù)、JSON參數(shù))
Cookie參數(shù)
參數(shù)的名稱(chēng)和個(gè)數(shù)(通過(guò)增加參數(shù)個(gè)數(shù)或者增加參數(shù)來(lái)驗(yàn)證漏洞)
Http Header信息(通過(guò)對(duì)header信息的篡改來(lái)驗(yàn)證漏洞)
AFM編碼(對(duì)flash通信漏洞的驗(yàn)證)
REST風(fēng)格的參數(shù)
對(duì)于以上的攻擊插入點(diǎn)抡砂,Burp Scanner還是可以通過(guò)改變參數(shù)的位置來(lái)驗(yàn)證漏洞大咱,Burp Scanner中共有URL to body 、URL to cookie注益、Body to URL碴巾、Body to cookie、Cookie to URL丑搔、Cookie to body 六種方式厦瓢。當(dāng)我們?cè)趻呙栩?yàn)證中,可以根據(jù)實(shí)際請(qǐng)求啤月,靈活選擇位置改變的組合煮仇,高效快速地驗(yàn)證漏洞。但我們也應(yīng)該明白顽冶,當(dāng)我們選中了位置改變來(lái)驗(yàn)證漏洞欺抗,即選擇了Burp發(fā)送更多的請(qǐng)求,如果是在生成系統(tǒng)中的測(cè)試需要慎重强重。
另外绞呈,Burp的攻擊插入點(diǎn)也支持嵌套的方式,這意思是指间景,如果一個(gè)請(qǐng)求的參數(shù)值是JSON對(duì)象或者XML文本佃声,Burp Scanner在掃描時(shí),可以對(duì)JSON對(duì)象或XML文本中的屬性倘要、屬性值進(jìn)行驗(yàn)證圾亏,這會(huì)極大地提高了Burp Scanner對(duì)漏洞掃描的涉及面十拣。這是由上圖中的use nested insertion points的checkbox是否選中去控制的,默認(rèn)情況下是選中生效的志鹃。
當(dāng)我們?cè)O(shè)置攻擊插入點(diǎn)的同時(shí)夭问,我們也可以指定哪些參數(shù)進(jìn)行跳過(guò),不需要進(jìn)行漏洞驗(yàn)證曹铃。在設(shè)置時(shí)缰趋,Burp是按照服務(wù)器端參數(shù)跳過(guò)和所有參數(shù)均跳過(guò)兩種方式來(lái)管理的,界面如下圖:?
2 主動(dòng)掃描引擎設(shè)置(Active Scanning Engine)?
?主動(dòng)掃描引擎設(shè)置主要是用來(lái)控制主動(dòng)掃描時(shí)的線程并發(fā)數(shù)陕见、網(wǎng)絡(luò)失敗重試間隔秘血、網(wǎng)絡(luò)失敗重試次數(shù)、請(qǐng)求延遲评甜、是否跟蹤重定向灰粮。其中請(qǐng)求延遲設(shè)置(Throttle between requests)和其子選項(xiàng)延遲隨機(jī)數(shù) (Add random variations to throttle)在減少應(yīng)用負(fù)荷,模擬人工測(cè)試忍坷,使得掃描更加隱蔽粘舟,而不易被網(wǎng)絡(luò)安全設(shè)備檢測(cè)出來(lái)。 至于這些參數(shù)的具體設(shè)置佩研,需要你根據(jù)服務(wù)器主機(jī)的性能蓖乘、網(wǎng)絡(luò)帶寬、客戶端測(cè)試機(jī)的性能做相應(yīng)的調(diào)整韧骗。一般來(lái)說(shuō)嘉抒,如果您發(fā)現(xiàn)該掃描運(yùn)行緩慢,但應(yīng)用程序表現(xiàn)良好袍暴,你自己的CPU利用率較低些侍,可以增加線程數(shù),使您的掃描進(jìn)行得更快政模。如果您發(fā)現(xiàn)發(fā)生連接錯(cuò)誤岗宣,應(yīng)用程序正在放緩,或你自己的電腦很卡淋样,你應(yīng)該減少線程數(shù)耗式,加大對(duì)網(wǎng)絡(luò)故障的重試次數(shù)和重試之間的間隔。
3.主動(dòng)掃描優(yōu)化設(shè)置(Active Scanning Optimization)?
此選項(xiàng)的設(shè)置主要是為了優(yōu)化掃描的速度和準(zhǔn)確率趁猴,盡量地提高掃描速度的同時(shí)降低漏洞的誤報(bào)率刊咳。 掃描速度(Scan speed)分快速、普通儡司、徹底三個(gè)選項(xiàng)娱挨,不同的選項(xiàng)對(duì)應(yīng)于不同的掃描策略,當(dāng)選擇徹底掃描(Thorough)時(shí)捕犬,Burp會(huì)發(fā)送更多的請(qǐng)求跷坝,對(duì)漏洞的衍生類(lèi)型會(huì)做更多的推導(dǎo)和驗(yàn)證酵镜。而當(dāng)你選擇快速掃描(Fast),Burp則只會(huì)做一般性的柴钻、簡(jiǎn)單的漏洞驗(yàn)證淮韭。 掃描精準(zhǔn)度(Scan accuracy)也同樣分為三個(gè)選項(xiàng):最小化假陰性(Minimize false negatives)、普通贴届、最小化假陽(yáng)性(Minimize false positives)缸濒。掃描精準(zhǔn)度主要是用來(lái)控制Burp的掃描過(guò)程中針對(duì)漏洞的測(cè)試次數(shù)。當(dāng)我們選擇最小化假陽(yáng)性時(shí)粱腻,Burp會(huì)做更多的驗(yàn)證測(cè)試,來(lái)防止假陽(yáng)性漏洞的存在斩跌,但也是恰恰基于此绍些,當(dāng)Burp做更多的驗(yàn)證測(cè)試時(shí),可能存在恰好無(wú)法獲取應(yīng)答的誤報(bào)耀鸦,增加了漏洞的噪音柬批。 智能攻擊選擇(Use intelligent attack selection )這個(gè)選項(xiàng)通過(guò)智能地忽略一些攻擊插入點(diǎn)基值的檢查,比如說(shuō)一個(gè)參數(shù)值包含不正常出現(xiàn)在文件名中的字符袖订,Burp將跳過(guò)文件路徑遍歷檢查此參數(shù)氮帐,使用此選項(xiàng)可加速掃描,并降低在提升掃描速度的同時(shí)會(huì)導(dǎo)致漏報(bào)率上升的風(fēng)險(xiǎn)洛姑。
4.主動(dòng)掃描范圍設(shè)置(Active Scanning Areas)?
?在主動(dòng)掃描過(guò)程中上沐,你可以根據(jù)你的掃描時(shí)間、關(guān)注的重點(diǎn)楞艾、可能性存在的漏洞類(lèi)型等情況参咙,選擇不同的掃描范圍。這里可選擇的掃描范圍有:
SQL注入 -可以使不同的測(cè)試技術(shù)(基于誤差硫眯,時(shí)間延遲測(cè)試和布爾條件測(cè)試)蕴侧,并且也使檢查所特有的單獨(dú)的數(shù)據(jù)庫(kù)類(lèi)型(MSSQL,Oracle和MySQL的)两入。
操作系統(tǒng)命令注入 - (信息通知和盲注)净宵。
反射式跨站點(diǎn)腳本
存儲(chǔ)的跨站點(diǎn)腳本
文件路徑遍歷
HTTP頭注入
XML/ SOAP注入
LDAP注入
URL重定向
http消息頭可操縱
服務(wù)器的問(wèn)題
5.被動(dòng)掃描范圍設(shè)置(Passive Scanning Areas)?
?因?yàn)楸粍?dòng)掃描不會(huì)發(fā)送新的請(qǐng)求,只會(huì)對(duì)原有數(shù)據(jù)進(jìn)行分析裹纳,其掃描范圍主要是請(qǐng)求和應(yīng)答消息中的如下參數(shù)或漏洞類(lèi)型:Headers择葡、Forms、Links剃氧、Parameters刁岸、Cookies、MIME type她我、Caching虹曙、敏感信息泄露迫横、Frame框架點(diǎn)擊劫持、ASP.NET ViewState 酝碳。