wscan是一个基于协程(asyncio、aiohttp)的网站目录扫描器,用于网站路径的收集以及探测,主要分为两个功能:
- 路径爆破探测
- 网站目录爬取
然后整理成一张树图展现出网站的结构以及各个路径的响应情况
对于路径爆破,我们的思路很快就能出来
- 准备个爆破字典,取出一个爆破路径
- 请求
Target URL
+爆破路径
,取回响应码- 对响应码进行分析并分类显示结果
- 开始下一个路径的爆破
代码目录结构:
wscan
│ wscan.py
├─fuzz
│ │ dirList.txt #Fuzz路径文件
│ └─ user_agent.txt # 请求所需的User-agent 列表
└─lib
├─controller
│ └─ Controller.py # 主控制流程
├─exception
│ └─ ScanException.py # 异常处理
├─io
│ │ Argument.py # 参数接收相关
│ └─ ColorOutput.py # 输出相关
├─portscan
│ └─ portScan.py # 端口扫描(由于功能有点简陋,还未加进主程序)
└─tree
│ DirTree.py # 路径树
└─ Node.py # 节点
安装:
pip install wscan
使用方式:
wscan [-u URL] [-f] [-m] [Extend options]
- -u URL: 目标URL
- -f: 启用Fuzz功能
- -m: 爬取网站获取网站目录结构
- -b BASE: Fuzz的前缀地址 e.g -b /cms/app. 然后将会在
http[s]://host/cms/app/
的基础上进行爆破 - -e EXTEND: 爆破的后缀名,默认为php
- -max NUM: 最大协程数
- -404 NOT_FOUND: 自定义404标识, 爬取和Fuzz时会正则匹配该值来判断是不是自定义404页面,减少误报. e.g. “Not found”
- –s: 爬取静态资源(目前只支持图片
img
和JSscript
) - -v, -vv: 详细的输出信息
- -h: 帮助
演示动画:
项目下载:
此处含有隐藏内容,请提交评论并审核通过刷新后即可查看!