一、背景

这段时间总想捣鼓扫描器,发现自己的一些想法很多前辈已经做了东西,让我有点小沮丧同时也有点小兴奋,说明思路是对的,我准备站在巨人的肩膀去二次开发,加入一些自己的想法,从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


汤青松
5.2k 声望8.3k 粉丝

《PHP Web安全开发实战》 作者