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 协议》,转载必须注明作者和本文链接