网站渗透过程中 目录扫描工具是必备的 可以通过路径判断 对方网站是什么程序做的 以及发现一些敏感的目录 甚至直接扫描到数据库下载路径。
本工具是今天无聊写的,代码乱到我自己都不想看,功能勉强算实现了,为让大家放心,源代码也放出来,大家可以随意改,没啥技术含量的东西。
工具名字 就叫 网站目录扫描工具 (mulusm.exe)
网站目录扫描工具 源码:(有bug欢迎提出,我qq在代码中)
/*
* 工具名称:目录扫描器(mulusm.exe)
* 作者:飞仔
* QQ: 841116165
* 网站:[url]www.zixue7.com[/url]
* 时间:2014/3/18
* 使用命令:mulusm.exe -h [url]www.zixue7.com/admin/[/url] -f outfile
*/
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <curl/curl.h>
#include "concol.h"
#pragma comment(lib, "curllib.lib")
#define PATHFILE "zixue7.dat"
static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
char *p = (char *)ptr;
if(*(p+9)=='2' && *(p+10)=='0' && *(p+11)=='0')
{
fputs(" style='color:red;' ", (FILE*)stream);
setcolor(green,black);
}
return size*nmemb;
}
void useage()
{
setcolor(yellow, black);
printf( "╔══════════════════════════════╗\n"
"║ 网站目录扫描工具(mulusm.exe) ║\n"
"╠══════════════════════════════╣\n"
"║ 与众不同的是,支持https访问的网站 ║\n"
"╠══════════════════════════════╣\n"
"║作者:飞仔 QQ:841116165 免费的黑阔自学论坛 [url]www.zixue7.com[/url] ║\n"
"╠══════════════════════════════╣\n"
"║ 用法:mulusm.exe -h [url]www.baidu.com:80/admin/[/url] -f zixue7.html ║\n"
"╠══════════════════════════════╣\n"
"║ -h:表示网站地址 ║\n"
"║ 如果端口默认不是80就修改冒号后面的数字(默认可不写) ║\n"
"║ -f:表示扫描结果放到什么文件,默认 域名.html ║\n"
"╚══════════════════════════════╝\n");
setcolor(white,black);
Sleep(10000);
}
int main(int argc, char **argv)
{
char temp[1000]="",ch[2]="", url[1000]="", host[500]="", root[200]="", outfile[200]="", port[6]="";
FILE *fr,*fw;
// struct socket_in addr;
int i=0;
CURL *curl;
CURLcode res;
//如果没有命令行参数少于3个退出
if(argc<3)
{
useage();
return 0;
}
//分析命令行参数
for(i=0; i<argc; i++)
{
//获取主机地址
if(strcmp(argv[i],"-h") == 0)
{
strcpy_s(host, argv[++i]);
}
//获取输出文件
if(strcmp(argv[i],"-f") == 0)
{
strcpy_s(outfile, argv[++i]);
}
}
if(!strlen(outfile))
{
strcpy_s(outfile,host);
strcat_s(outfile,".html");
}
fr = fopen(PATHFILE, "r");
if(!fr)
{
printf("%s 文件打开失败!请检查是否存在!!", PATHFILE);
return -1;
}
fw = fopen(outfile, "w");
if(!fw)
{
printf("%s 文件打开失败!请检查是否存在!!", outfile);
return -1;
}
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(!curl)
{
printf("curl init failed");
return 0;
}
fputs("<p style='font-size:24px;line-height:50px;color:red;'>黑阔交流论坛 <a target='_blank' style='font-size:24px;line-height:50px;color:green;' href='http://wwww.zixue7.com'>自学去 [url]www.zixue7.com[/url]</a></p>\n", fw);
fputs("<p style='color:red;'>以下为扫描结果,红色为存在</p>\n", fw);
while(!feof(fr))
{
ch[0] = fgetc(fr);
//如果不是换行,就继续获取,直到一行结束
if(ch[0]!='\n')
{
strcat_s(temp,ch);
continue;
}
memset(url, 0, 1000);
strcat_s(url,host);
strcat_s(url,temp);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fw);
curl_easy_setopt(curl, CURLOPT_REFERER, url);
curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, 20000);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
fputs("<a ", fw);
setcolor(gray,black);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform() failed:%d\n", curl_easy_strerror(res));
break;
}
fputs(" href='http://", fw);
fputs(url, fw);
fputs("'>", fw);
fputs(url, fw);
fputs("</a><br />\n",fw);
printf("\n%s",url);
setcolor(white, black);
//请空缓冲区
memset(temp, 0, 1000);
}
curl_easy_cleanup(curl);
fputs("<p style='font-size:24px;line-height:50px;color:red;'>黑阔交流论坛 <a target='_blank' style='font-size:24px;line-height:50px;color:blue;' href='http://wwww.zixue7.com'>自学去 [url]www.zixue7.com[/url]</a></p>\n", fw);
fclose(fr);
fclose(fw);
return 0;
}
代码中用到的 concol.h 头文件在这里 http://www.itman1024.com/thread-3179-1-1.html
下面是编译好的程序以及整个工程目录打包:
mulusm.rar (34.84 KB, 下载次
转自:http://www.itman1024.com/thread-3178-1-1.html
代码中用到的 concol.h 头文件在这里 http://www.itman1024.com/thread-3179-1-1.html
下面是编译好的程序以及整个工程目录打包:
mulusm.rar (34.84 KB, 下载次
转载请注明:jinglingshu的博客 » 黑阔工具之网站目录扫描工具(带C语言源码)


