C语言编写网站目录扫描器实战

最近又开始入门渗透一波,网上有很多基于字典和爬虫的网站目录扫描器。

下载了个wwwscan,玩了几下,发现是一个别人修改过的版本。

渗透工具很多网上传来传去,最后有没有木马都不知道。

我希望能攒出自己的一套工具,顺带提高一下自己的C语言水平。

顺带把这些工具所提供的字典好好的收集一波(攒一下自己的字典)。

至于为什么用C语言是因为C语言写的工具效率会更高些。

1.功能分析

制作这个网站目录扫描器需要实现哪些函数呢?

  • 1.获取当前目录
  • 2.遍历某个目录下的所有文件和文件夹
  • 3.读取字典文件内容
  • 4.实现网站访问功能,并通过返回的状态码判断目录/文件是否存在
  • 5.编写多线程程序加快扫描速度

1.1 获取当前目录

1
2
3
#include <direct.h>
char curDir[255] = "";
_getcwd(curDir, 255);

1.2 遍历文件夹

// 遍历某文件夹下面的所有子文件夹 16代表文件夹,32代表文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<string> getFiles(string foler,int fileType) {
_finddata_t fileDir;
vector<string> res;
foler = foler + "\\*";
int state = _findfirst(foler.data(), &fileDir);
if (state == -1) {
printf("改文件夹下不存在任何文件。");
return res;
}
do {
if (string(fileDir.name) == "." || string(fileDir.name) == "..")continue;
if(fileDir.attrib== fileType)res.push_back(foler+"\\"+string(fileDir.name));
} while (_findnext(state, &fileDir) == 0);
return res;
}