W13Scan 扫描器挖掘漏洞实践

一、背景#

这段时间总想捣鼓扫描器,发现自己的一些想法很多前辈已经做了东西,让我有点小沮丧同时也有点小兴奋,说明思路是对的,我准备站在巨人的肩膀去二次开发,加入一些自己的想法,从 freebuf 中看到 W13Scan 扫描器,觉得这个扫描器很酷,准备深入研究。

因为我是做 PHP 开发的,对 python 不算太熟悉,所以在安装过程中出现了一些问题,把解决方法记录下来,给需要的人一个参考吧。

二、安装 python#

W13Scan 是基于 python3 开发的扫描器,要运行它我们需要安装 python3.5 以上版本,可以从 python 官网下载安装,我这里安装的是 python3.6,安装之后打开 CMD 窗口,执行 python 或者 pip 命令,看看是否自动加入到了环境变量,如下图所示

在上图中可以看到,python 安装目录还没有加入到环境变量,因此 pip 命令没有找到,我们找到 python 的安装目录,将上方的 python 路径复制出来,

并打开右击我的电脑,找到高级设置,环境变量里面,如下图所示

在上图中,我已经将 python 的目录和 pip 的路径添加到系统的 path 项中,接下来我们重新打开一个 cmd 窗口,再次运行一下 pip 命令,如下图所示

从上图中可以看到,我已经成功将 pip 目录添加到环境变量中

三、安装依赖#

接下来我们需要将 W13Scan 的模块安装下来,找到刚才下载的项目目录,在 Windows10 系统中按住 shift 键,然后按下鼠标右键,就可以看到 “在此处打开 PowerShell 窗口” 选项,我们点击该选项,如下图所示

进入 powershell 窗口后,我们执行 pip install -r /requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 命令,如下图所示

命令执行后,可能会有部分模块安装不上,需要你去 python 官网手动下载对应模块的源码去安装,如下图所示

如果遇到上图这种情况不要沮丧,有一种快速的解决办法,我们使用 pycharm 编辑器,可以快速解决这个问题,如下图所示

在上图中,可以看到使用 pycharm 打开 requirements.txt,将鼠标放到需要安装的模块上,会自动弹出安装提示,我们点击安装就可以进行安装了;还有一种方式,在打开 requirements.txt 时候,会自动将所需要安装的都列出来,这个时候我们可以一次安装所有的依赖模块,如下图所属

在上图中我们将模块勾选后,然后按下 install 按钮,就可以安装所有模块

四、开始运行#

在安装好依赖模块后,就可以开始运行了,运行有两种模式,主动扫描和被动代理,我这里就以主动扫描为例,要先准备一个带有参数的 URL 地址,这个地址我是从谷歌搜索的,搜索关键词如下所示

inurl: php id=

搜索结果的结果如下所示

在上图中可以看到搜索出来的 URL 地址,都带有 id=1 类似的参数,我们随意找出几个 URL 地址用来测试,执行命令如下

python W13SCAN\w13scan.py -u "http://www.crammed.be/index.php?id=7"

执行结果如下图所示

在上图中可以看到,已经扫描到了 URL 中的 SQL 注入漏洞,并提示了保存路径,我们按照路径打开相应的文件就可以看到扫描结果,如下图所示

在上图中可以看到扫描结果中显示了,poc 的名称以及脚本路径,扫描的 URL 地址;扫描的结果和发送的数据包以及返回的数据包

五、阅读源码#

W13Scan 扫描器完全开源,我准备深入学习并站在巨人的肩膀上开发,因此准备去深度学习源码,在读源码的过程中发现 pycharm 提示了错误信息,但是却不影响运行,如下图所示

在上图中可以看到 lib 模块出现红色警告,提示该模块找不到,原因是因为我们使用 pycharm 打开的目录错了,我们应该要打开的的项目目录是从 GitHub 下载下来的子文件夹 W13SCAN 目录

在上图中,我们用 pycharm 重新打开此目录,然后再次打开 w13scan.py 文件,效果如下所示

在上图中可以看到,已经不再出现红色警告,我们也可以用鼠标 +ctrl 跳转源码


作者:汤青松

日期:2020-12-03

本作品采用《CC 协议》,转载必须注明作者和本文链接
汤青松
PHP高级工程师 @ 中公教育
文章
35
粉丝
36
喜欢
169
收藏
77
排名:246
访问:3.9 万
私信
所有博文
社区赞助商