W13Scan 扫描器挖掘漏洞实践

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

一、背景


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


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


二、安装python


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


6.png


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


7.png


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


8.png


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


9.png


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


三、安装依赖


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


10.png


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


11.png


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


12.png


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


13.png


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


14.png


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


四、开始运行


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


inurl: php id=


搜索结果的结果如下所示


15.png


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


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


执行结果如下图所示


16.png


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


17.png


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


五、阅读源码


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


18.png


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


19.png


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


20.png


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

目录
相关文章
|
机器学习/深度学习 自然语言处理 数据处理
零样本学习的易懂解释
零样本学习是一种机器学习的方法,它的目标是在没有任何标记样本的情况下,通过学习从未见过的类别或任务。这意味着模型需要在没有任何先验知识的情况下进行学习和推理。
493 0
|
NoSQL 安全 MongoDB
MongoDB 未授权访问漏洞利用
MongoDB 未授权访问漏洞利用
2290 0
|
NoSQL 安全 网络协议
|
9月前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
326 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
10月前
|
Web App开发 前端开发 JavaScript
如何检测 CSS 性能瓶颈并进行优化?
【10月更文挑战第28天】通过使用上述性能检测工具,结合对常见CSS性能瓶颈的分析和相应的优化方法,可以有效地提高CSS的性能,提升网页的加载速度和渲染效率,为用户提供更流畅、快速的浏览体验。
161 14
|
10月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
10月前
|
XML Java Maven
WebService客户端调用的5种常见方式
本文介绍了在Java中创建和调用WebService的方法,包括服务端的搭建、配置类的添加以及客户端的多种调用方式(如使用JDK原生代码、wsimport命令、动态调用、代理工厂及HttpClient)。文中详细展示了每种方法的实现步骤和示例代码,强调了服务端与客户端参数实体类字段的兼容性,并推荐使用代理工厂方式进行调用。
2118 0
WebService客户端调用的5种常见方式
|
10月前
|
安全 Linux 虚拟化
LXD如何使用,跟Docker的区别都有什么?优点和缺点都有什么?
【10月更文挑战第28天】LXD如何使用,跟Docker的区别都有什么?优点和缺点都有什么?
1443 1
|
存储 缓存 Java
Apollo Config的简单介绍
Apollo Config是携程开源的分布式配置中心,在大规模、高并发、多环境下管理和推送配置非常方便。本文将从基本概念、应用场景、使用方式等方面介绍Apollo Config。
413 0
|
Java Spring
解决apollo的configService服务启动异常
apollo是一个非常流行的开源的配置中心项目,这里就不多介绍了。接触过apollo和运行过apollo的人肯定都遇到过启动configService时抛异常了,而且100%会抛一个异常。原因是,在apollo的架构中configService既作为config服务,同时也承载了metaService的功能,所以这个模块,既作为eureka的服务端也是eureka的客户端,这就造成了应用启动时,eurekaServer未完全启动,eurekaClient拉取注册表信息时就抛异常了。不过这个拉取动作是在独立的线程中运行的,独立于启动应用的主线程,所以异常并不影响应用的启动,这个问题也就一直从开源
4049 0