SPIKE Proxy:HTTP攻擊檢測(cè)
Spike Proxy是一款開源的以發(fā)現(xiàn)網(wǎng)站漏洞為目的的HTTP代理。它是Spike Application Testing Suite的一部分,功能包括自動(dòng)SQL注入檢測(cè)、 網(wǎng)站爬行(web site crawling)、登錄列表暴力破解、溢出檢測(cè)和目錄游走檢測(cè)。
下載鏈接:http://down.51cto.com/data/155573
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
SPIKE Proxy是測(cè)試Web服務(wù)的最簡(jiǎn)便的一種工具,對(duì)Web服務(wù)器的分析取決于利用這個(gè)工具作為代理瀏覽各種網(wǎng)頁(yè)的客戶。假定你采用python spkproxy.py啟用了這個(gè)工具,就可以打開瀏覽器訪問SPIKE Proxy界面和評(píng)估準(zhǔn)則,將它的代理設(shè)置設(shè)為127.0.0.1:8080,再訪問網(wǎng)頁(yè)http://spike/。
如果你想測(cè)試自己的Cisco設(shè)備的安全級(jí)別,可以利用瀏覽器輸入目標(biāo)設(shè)備的IP地址,讓SPIKE使用各種畸形HTTP協(xié)議請(qǐng)求的組合對(duì)HTTP請(qǐng)求進(jìn)行fuzzing攻擊。這是通過單擊下列選項(xiàng)完成的:Delve into Dir、argscan、dirscan和overflow VulnXML Tests。這樣做會(huì)執(zhí)行目錄遍歷、對(duì)參數(shù)執(zhí)行fuzzing攻擊,通過提交各種長(zhǎng)度的串嘗試獲得緩沖區(qū)溢出,還會(huì)執(zhí)行其他有用的任務(wù)。你所要做的就是分析響應(yīng),并檢查服務(wù)器是否仍然正常運(yùn)轉(zhuǎn)。如果你發(fā)現(xiàn)服務(wù)器停止響應(yīng)或者響應(yīng)的信息與你期望的不同,你就可能發(fā)現(xiàn)了一個(gè)軟件缺陷,需要進(jìn)一步檢查、測(cè)試。
當(dāng)然,SPIKE不僅僅是個(gè)代理。它具有大量工具可供嘗試并測(cè)試。我在這里將概述fuzzer集合中的另一個(gè)工具:Web-fuzz。為了利用這個(gè)工具,你必須設(shè)置中間人類型重定向,解釋你瀏覽目標(biāo)設(shè)備的Web界面所產(chǎn)生的所有流量。在完成網(wǎng)站爬行之后,通過下列步驟讓W(xué)ebfuzz對(duì)Web服務(wù)器進(jìn)行分析:
1. 以下列方式捕獲HTTP請(qǐng)求:
- $ ./webmitm -t <IP/hostname of web site> -p 80
 
2. 修改你的/etc/hosts(或windows/system32/hosts),以便將你的目標(biāo)重定向到你主機(jī)上的Web代理。
3. 像平時(shí)一樣瀏覽網(wǎng)站。這會(huì)產(chǎn)生大量文件,這些文件用于進(jìn)行進(jìn)一步的處理和分析。
4. 利用makeWebfuzz.pl創(chuàng)建Webfuzz.c。
- $ ./makewebfuzz.pl <http-request-N> > webfuzz.c
 
利用從Webmitm輸出中產(chǎn)生的文件名取代<http-request-N>。
5. 在你的SPIKE src目錄中運(yùn)行$ make,將Webfuzz.c編譯成一個(gè)二進(jìn)制文件。
6. 針對(duì)Web服務(wù)器運(yùn)行$ ./webfuzz <target-IP> <port>,指定目標(biāo)設(shè)備的IP地址和端口作為例子,Webfuzz.c看上去應(yīng)該類似于以下這樣(顯然會(huì)由于每種測(cè)試場(chǎng)景的不同而不同):
- #include <stdio.h>
 - #include <stdlib.h
 - #include <string.h>
 - #include <sys/types.h>
 - #include <sys/socket.h>
 - #include <signal.h>
 - #include "spike.h"
 - #include "hdebug.h"
 - #include "tcpstuff.h"
 - void
 - usage()
 - {
 - fprintf(stderr,"用法: ./webfuzz target port ");
 - exit(-1);
 - }
 - int
 - main (int argc, char ** argv)
 - {
 - int first;
 - char * target;
 - char buffer[1500000];
 - int port;
 - char * optional;
 - struct spike * our_spike;
 - unsigned long retval;
 - int notfin;
 - if (argc!=3)
 - {
 - usage();
 - }
 - .
 - .
 - <output omitted on purpose>
 - .
 - .
 - while(retval && notfin)
 - {
 - memset(buffer,0x00,sizeof(buffer));
 - notfin=s_fd_wait();
 - if (!notfin)
 - break;
 - retval=read(our_spike->fd,buffer,2500);
 - if (first && (retval==-1 || retval==0))
 - {
 - printf("***服務(wù)器斷開連接! ");
 - }
 - first=0;
 - if (retval)
 - {
 - printf("%.500s",buffer);
 - }
 - }
 - s_incrementfuzzstring();
 - spike_close_tcp();
 - }
 - s_incrementfuzzvariable();
 - }
 - printf("完成. ");
 - return 0;
 - }
 
建議將輸出重定向到一個(gè)文件,以便以后可以對(duì)它進(jìn)行分析。如果你看到任何不尋常的信息,就要花點(diǎn)時(shí)間看看并進(jìn)行進(jìn)一步的分析和研究。也許你剛好發(fā)現(xiàn)了Cisco HTTP服務(wù)器中的另一個(gè)漏洞。















 
 
 


 
 
 
 