這篇文章將為大家詳細(xì)講解有關(guān)使用Python怎么實(shí)現(xiàn)一個(gè)資源探測(cè)器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),澤普企業(yè)網(wǎng)站建設(shè),澤普品牌網(wǎng)站建設(shè),網(wǎng)站定制,澤普網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,澤普網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
首先,引入相關(guān)的模塊:
requests,用于請(qǐng)求目標(biāo)站點(diǎn);
threading,用于啟用多線程;
sys,用于解析命令行參數(shù);
getopt,用于處理命令行參數(shù);
然后,定義一個(gè)程序的橫幅:
這個(gè)橫幅用于在程序啟動(dòng)的時(shí)候顯示出來(lái),除了讓程序個(gè)性一點(diǎn)之外,也沒(méi)啥用。
再定義一個(gè)函數(shù),用來(lái)顯示程序的用法:
我們的程序因?yàn)槭窃诿钚邢逻\(yùn)行的,所以需要設(shè)置一些參數(shù),在這里,我們用:
-w來(lái)指定網(wǎng)址
-t 來(lái)指定線程數(shù)
-f來(lái)指定字典文件
這三個(gè)參數(shù)缺一不可。
這兩個(gè)函數(shù)創(chuàng)建好后,運(yùn)行程序便會(huì)出現(xiàn)如下界面:
看上去是不是有那么點(diǎn)意思。
接著,我們創(chuàng)建一個(gè)繼承于Thread的類request_performer(),用于創(chuàng)建線程并向目標(biāo)站點(diǎn)發(fā)起請(qǐng)求以及獲取響應(yīng):
在request_performer()類的run()方法里面,我們利用requests對(duì)URL進(jìn)行請(qǐng)求并將響應(yīng)的狀態(tài)碼打印出來(lái)。而這,就是我們這個(gè)探測(cè)器的最主要功能了。
再創(chuàng)建一個(gè)啟動(dòng)request_performer()類的函數(shù)launcher_thread(),用于遍歷字典文件中的關(guān)鍵字組合成URL并生成新的線程。
繼續(xù)創(chuàng)建一個(gè)函數(shù)start(),用于接收命令行中的參數(shù)將其傳遞給launcher_thread()函數(shù):
最后,當(dāng)然是在主程序中運(yùn)行了:
咱們這個(gè)程序到底有什么用呢?
在這里,我們不得不再提一下上面提及過(guò)的FUZZDB數(shù)據(jù)庫(kù)。fuzzdb是一個(gè)用于模糊測(cè)試的數(shù)據(jù)庫(kù),類似于一個(gè)龐大的字典。而這些字典的內(nèi)容呢,都是安全大神們維護(hù)的、在實(shí)踐中發(fā)現(xiàn)很有可能會(huì)是攻擊點(diǎn)的目錄或路徑。
我們可以打開(kāi)數(shù)據(jù)庫(kù)中的一個(gè)txt文件看看:
這是一個(gè)針對(duì)wordpress博客系統(tǒng)插件的一個(gè)字典,這里面都是插件的路徑和目錄。
測(cè)試暴力探測(cè)器
還記得在滲透測(cè)試環(huán)境搭建那篇文章介紹的虛擬機(jī)環(huán)境嗎?里面有一個(gè)充滿漏洞的Web應(yīng)用http://www.scruffybank.com/,我們可以使用我們剛剛編寫好的暴力探測(cè)器對(duì)這個(gè)網(wǎng)站進(jìn)行一下探測(cè)。
字典文件我們先采用一個(gè)簡(jiǎn)單的字典:
我們?cè)诿钚羞\(yùn)行命令:
得到結(jié)果:
common.txt字典中有三個(gè)是成功的響應(yīng),我們打開(kāi)其中一個(gè)http://www.scruffybank.com/robots.txt看看:
包含了三個(gè)禁止搜索引擎爬取的鏈接,看字面意思,其中一個(gè)還是后臺(tái)地址admin,但是在結(jié)果頁(yè)我們知道/admin是404錯(cuò)誤,但是有一個(gè)/Admin,我們打開(kāi)看看:
彈出了認(rèn)證登錄框,但是我們沒(méi)有用戶名和密碼,目前來(lái)說(shuō)只能作罷。
我們?cè)偈褂肍UZZDB數(shù)據(jù)庫(kù)里的字典測(cè)試一下。選擇fuzzdb-master/discovery/predictable-filepaths/php目錄下的PHP.fuzz.txt:
同樣在終端命令行運(yùn)行命令:
得到結(jié)果:
雖然有很多404,但是我們還是發(fā)現(xiàn)了一些成功的響應(yīng)。
比如info.php,打開(kāi)原來(lái)是PHP的info界面:
login.php為登錄頁(yè)面:
關(guān)于使用Python怎么實(shí)現(xiàn)一個(gè)資源探測(cè)器就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。