幾款常見web掃描器的簡要記錄

1、前期偵查php

 

爲了減小和目標系統的交互(防止觸發報警),建議將目標站點鏡像一份到本地web

httrack(鏡像網站到本地)  ====> 根據引導填入相關信息便可,使用很是簡單瀏覽器

 

 

2、掃描安全

 

掃描分兩種:一種是主動掃描,一種是截斷代理服務器

 

3、掃描工具cookie

* Nikto(弱點掃描,輸出結果所有爲弱點項)多線程

perl語言開發的開源web安全掃描器併發

掃描軟件版本分佈式

搜索存在安全隱患的文件(好比系統管理員將後臺代碼打包備份後忘了刪留在web目錄下的打包文件等可能泄露隱私的文件)工具

服務器配置漏洞

WEB Application層面的安全隱患

避免404誤判原理:Nikto會先隨機向目標請求若干類型的隨機確定不存在的文件,來獲取不一樣擴展名的文件404的真實返回內容,這樣在掃描時收到404後會和收集到的真實404庫進行對比,能匹配到則爲真404,不然爲假404

(注意:不少服務器不遵照RFC標準,對於不存在的對象也會返回200,)(能夠使用 -no404 參數關閉該功能)

使用說明:

nikto -host https://www.baidu.com  ====> 常規掃描方法

nikto -host https://www.google.com -useproxy http://localhost:1080  ====> 代理掃描方法

在掃描的時候能夠輸入如下值來與Nikto交互:

空格 =返回當前掃描狀態

v -顯示掃描過程的詳細信息

d -顯示掃描過程的巨詳細信息

e -顯示錯誤信息

p -顯示進程信息

r -顯示重定向信息

c -顯示cookie信息

a -顯示認證信息

q -退出

N -下一臺主機

P -暫停

 

Nikto默認不支持自動輸入用戶名密碼登陸,想要掃描登陸後的頁面能夠使用cookie的方式。 修改配置文件裏的'#STATIC-COOKIE='能夠實現帶cookie掃描

例: STATIC-COOKIE="PHPSESSID"="3804689b6bbfe8729681b0b8d547b1d0";"security"="low"

配置文件路徑:

/etc/nikto.conf

 

 

 

 

 

* Vega

JAVA編寫的開源web掃描器

支持主動掃描和截斷代理

支持爬站、處理表單、注入測試

支持SSLhttp://vega/ca.crt

 

 

 

 

 

 

* Skipfish(經測試此工具極其牛逼,才300K能夠作到這個程度,google就是牛逼)

C語言編寫

google開發的實驗性的主動web安全評估工具

遞歸爬網

基於字典的探測

速度較快

多線程掃描

啓發式自動內容識別

誤報率低

用法:

Usage: skipfish [ options ... ] -W wordlist -o output_dir start_url [ start_url2 ... ]

例:

skipfish -o result http://172.20.163.44/dvwa/   ====>注意:默認不管指什麼路徑skipfish都會從根路徑開始掃

-I:只檢查包含'string'URL

-X:不檢查包含'string'URL

-K:不對指定參數進行Fuzz測試

-D:跨站點爬另一個域  ====>若是被掃描目標沒有連接鏈到另一個域名則不會主動去掃,默認爬到不是目標的域名不掃

-l:每秒最大請求數

-m:每一個IP最大併發鏈接數

--config:指定配置文件

 

skipfish -o result @存儲URL文件  ====> 能夠經過@方式讀取存放有待掃描URL文件來實現同時掃描多個目標

skipfish -o result -S complet.wl -W a.wl http://172.20.163.44  ====> 默認只掃描超連接能鏈接到的地方,能夠經過-W的方式加字典來爬取隱藏的目錄及文件

(能夠經過'dpkg -L skipfish | grep wl'查看wl字典文件路徑) (-W能夠自動補充字典,當碰到字典裏沒有的會寫入這個文件,供下次掃描使用)

 

身份認證:

 

1、提交表單

skipfish -o result --auth-form '須要密碼的URL' --auth-user '用戶名' --auth-pass '密碼' --auth-verify-url '登錄成功後的URL'

(注意:若是程序不能自動找到用戶名填寫位置則需手工添加'--auth-form-target 表單名稱'告訴程序具體是哪一個表單,

以及手工添加'--auth-user-field 表單中的位置'/'--auth-pass-fields 表單中的位置'告訴程序應該填在該表單的哪一個位置裏,

表單名稱以及表單位置經過F12後點擊表單位置便可在源代碼中看到)

 

舉例:

skipfish -o result112 --auth-form http://172.20.163.44/dvwa/login.php --auth-form-target http://172.20.163.44/dvwa/login.php

--auth-user-field username --auth-user admin --auth-pass-field password --auth-pass password --auth-verify-url http://172.20.163.44/dvwa/index.php -I dvwa http://172.20.163.44/dvwa/

(注意:不知爲啥表單名稱和登錄URL同樣,表單名稱提取自"<form action='login.php' method='post'>==$0"中的'login.php',姑且認爲表單名就是路徑+action的值吧)

 

2cookie登錄

skipfish -C 'cookie' -o test http://172.20.163.44   ===> cookie有多個值時要用多個'-C'來填充

 

舉例:

skipfish -o bb -I dvwa -C "PHPSESSID=3804689b6bbfe8729681b0b8d547b1d0" -C "security=low" http://172.20.163.44/dvwa/

 

 

 

 

 

 

* Arachni(支持分佈式掃描,感受很是產品化的一個東西,特別適合企業使用)

特色:能夠向其餘主機安裝agent,實現統一管理、分佈式掃描,安裝簡單

 

安裝:

http://www.arachni-scanner.com/download/

解壓出來後在該文件夾下的bin目錄裏執行arachni_web便可開啓web端口

 

agent運行命令: ./arachni_rpcd --address=服務器IP --port=本地監聽端口 --nickname=test1

agent分組運行命令: ./arachni_rpcd --address=服務器IP --neighour=你要和誰在一組就寫誰的IP:PORT,第一個agent確定是以單個形式註冊的,剩餘的纔是和第一個建組 --nickname=test2

 

小技巧:php由於是服務端腳本語言,因此它的代碼不會在瀏覽器被執行,要想打印出php腳本代碼,只需在路徑後加上'-s'便可

例:http://172.20.163.44/dvwa/login.php?-s

相關文章
相關標籤/搜索