- 主题
- 0
- 积分
- 0
- 贝壳
- 0 个
- 注册时间
- 2006-10-14
- 最后登录
- 2006-10-20
|
高手勿进!!
[这个贴子最后由情绪在 2002/11/18 08:03pm 第 1 次编辑]
这是他要讲的,我帮他先放进去!!!
扫描器,在入侵时,是一个必不可少的工具!!!其功能的强大与否,可以影响入侵的成功机率。以下是一个简单的CGI漏洞扫描器的代码!!我有很多不懂,所以就拿出来,大家研究一下!!!
#include
#include
#include
#defineiPort80//目标WebServer端口
#definezSign"50013\r\nServer:Microsft-IIS/5.0"//根据标志来检查目标是否有漏洞
#pragmcomment(lib,"ws2_32.lib")
//定义&初始化全局变量
char*SendBuff="GET/NULL.printer\n",//发送的请求buff
CurrentTarget[52]={0},//存放最后一个线程将扫描的目标
turn[4][2]={"-","\\","|","/"}//显示进度时的字符
intSendBuffLen=strlen(SendBuff),//发送的buff长度
iConnTimeout,//TCPConnectTimeout
ii=0,//扫描进度
iTotal;//服务器总数
HNDLEhSemphore=NULL,//信标内核对象句柄,用来控制线程数量
hStdout;//console标准输出句柄,做进度显示的时候用的
structtimeval timeout;//连接、发送和接收的超时值
DWORDSleepTime;//每个一个线程后等待的时间
/*
/*SleepTime值根据用户输入的线程数量[ThreadNum]和TCPConnectTimeOut[CONNTIMEO]来计算。确保在CONNTIMEO时间左右开 ThreadNum个线程。这样在CONNTIMEO时间后,所开的线程开始陆续超时退出,可以继续稳定的开线程,可以有效的保证同时有 ThredNum个线程在运行。
///////////////////////////////////////////////////////////////////////////////////////////////////
moidShoError(char*);//显示出错信息函数
BOOLResetCursor(void);//重置光标位置,线程输出的时候调用的
DWORDWINAPIShowProlnfo(LPVOID);//显示进度信息
DWORDWINAPIscan(LPVOID);//扫描函数
voidusage(char*);//帮助函数
//////////////////////////////////////////////////////////////////////////////////////////////////
intmain(intrgc,char**argv)
{
HANDLEhThread=NULL;//线程句柄
DWORDdwThedID;//线程ID
stuctsockaddr_insa;
inti,
MaxThred;//最大线程函数
WSADATA wsd;
longPreviousCount;
clock_tstart,end;//程序运行的起始和结束时间
doubleduration;//检查用户输入参数
if(argc!=5)
{
usage(argv[0]);
return1;
}
//gettargetrange
intStartNet=inet_addr(argv[1]);
intStopNet=inet_ddr(argv[2]);
intStartHost=ntohl(StartNet) ;
intStopHost=ntohl(StopNet) ;
//取得线程
MaxThred=toi(rgv[3]);
//取得conn超时时间
iConnTimeout=atoi(argv[4]);
//检查参数合法性
if(iConnTimeout>6)||(iConnTimeout<2)||(MaxThred<1)||(MaxThred>500)||(StopHost |
|