本篇概要
Selenium與PhantomJS
為滲透測(cè)試探測(cè)器添加截圖功能
測(cè)試新功能
在前面文章中,我們使用Python編寫了一個(gè)滲透測(cè)試探測(cè)器,從fuzz數(shù)據(jù)庫(kù)中獲取字典信息,利用requests模塊請(qǐng)求拼接組裝的URL,從而獲得URL的響應(yīng)內(nèi)容,并借助termcolor模塊將整理后的信息打印出來(lái)。
現(xiàn)在我們又有了一個(gè)不成熟的想法,不知道當(dāng)不當(dāng)說(shuō)。
在正常的Web滲透測(cè)試中,我們?cè)谔綔y(cè)完一個(gè)網(wǎng)站,獲取到所有的探測(cè)結(jié)果之后,肯定要看看請(qǐng)求成功的鏈接的網(wǎng)頁(yè)是長(zhǎng)什么樣子的。如果URL過(guò)多,一個(gè)一個(gè)去點(diǎn)擊的話,就太浪費(fèi)時(shí)間了。所以我們需要獲取到網(wǎng)頁(yè)的截圖,方便探測(cè)完之后,查看網(wǎng)頁(yè)。
Selenium與PhantomJS
要對(duì)請(qǐng)求的網(wǎng)頁(yè)進(jìn)行截圖,這樣的操作,requests大概是沒(méi)轍了。這時(shí)候,我們需要使用到另一個(gè)工具——Selenium,一個(gè)專門用于Web自動(dòng)化測(cè)試的模塊。
其能夠借助瀏覽器內(nèi)核驅(qū)動(dòng),實(shí)現(xiàn)瀏覽器的各種動(dòng)作。在Python中,我們通過(guò)pip可以輕易的進(jìn)行安裝:
Selenium可以使用多種瀏覽器內(nèi)核,比如主流的Chrome、 Firefox等,但在這里,我們使用另一個(gè)非主流的瀏覽器——PhantomJS,一個(gè)無(wú)頭瀏覽器。除了沒(méi)有圖形界面外,擁有其他主流瀏覽器的所有功能。
我們可以在命令行使用phantomjs,自然也可以在Python中使用Selenium來(lái)調(diào)用phantomjs:
這樣,就實(shí)現(xiàn)了使用PhantomJS作為Selenium調(diào)用的瀏覽器內(nèi)核了。
在實(shí)例化一個(gè)webdriver后,使用get()方法,可以訪問(wèn)一個(gè)URL:
使用save_screenshot()方法,可以保存頁(yè)面的截圖。
關(guān)于Selenium的其他運(yùn)用,可以參見(jiàn)博客的其他文章,或是網(wǎng)絡(luò)上的資料。在此,我們主要使用到這兩個(gè)方法。
添加網(wǎng)頁(yè)截圖功能
了解到使用Selenium進(jìn)行網(wǎng)頁(yè)請(qǐng)求和截圖的方法后,我們就可以為我們的滲透測(cè)試探測(cè)器添加新功能了。
當(dāng)然,肯定不是每個(gè)頁(yè)面都需要保存網(wǎng)頁(yè)的截圖,我們對(duì)請(qǐng)求成功的頁(yè)面進(jìn)行截圖,也就是響應(yīng)的狀態(tài)碼大于等于200小于300的網(wǎng)頁(yè)才需要截圖。
下面修改一下request_performer()類中的run()方法:
我們主要添加了4行代碼:
實(shí)例化一個(gè)webdriver,請(qǐng)求url,等待3秒,設(shè)置瀏覽器窗口大小,保存網(wǎng)頁(yè)截圖。
測(cè)試網(wǎng)頁(yè)截圖功能
修改好代碼之后,我們可以測(cè)試一下我們的第4版本的滲透測(cè)試探測(cè)器了。
在命令行終端運(yùn)行命令:
運(yùn)行完成,我們看看我們的文件夾:
多出了5個(gè)圖片,我們打開(kāi)一個(gè)看看:
與瀏覽器打開(kāi)的是一樣的:
這樣我們使用Python編寫的滲透測(cè)試探測(cè)器就基本完善好了。
接下來(lái),我們將會(huì)介紹Python Web滲透測(cè)試之密碼攻擊!
聯(lián)系客服