SPIKE Proxy:HTTP攻擊檢測(cè)
Spike Proxy是一款開(kāi)源的以發(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è)工具,就可以打開(kāi)瀏覽器訪問(wèn)SPIKE Proxy界面和評(píng)估準(zhǔn)則,將它的代理設(shè)置設(shè)為127.0.0.1:8080,再訪問(wèn)網(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攻擊。這是通過(guò)單擊下列選項(xiàng)完成的:Delve into Dir、argscan、dirscan和overflow VulnXML Tests。這樣做會(huì)執(zhí)行目錄遍歷、對(duì)參數(shù)執(zhí)行fuzzing攻擊,通過(guò)提交各種長(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)站爬行之后,通過(guò)下列步驟讓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ù)器斷開(kāi)連接! ");
- }
- 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è)漏洞。