DirScan是一款探测网站路径的工具,批量扫描网站的路径(目录或文件名或Api),快速发现目标薄弱点
推荐使用python3.8以上版本
python3 dirscan.py --target [source urls file] --dirs [dir dict file] --filenames [filename dict file]
- 实现异步协程(asyncio + httpx)快速扫描目标
- 主要结合响应码和其他辅助因素判断网站路径存活概率
- 对扫描过程中发现的可用目录,继续拼接字典扫描
- 对命中路径计数入库,存入sqlite,以后使用时按命中次数降序取出
- 对响应大量200或403状态码的网站,取消继续扫描
- 扫描结果保存CSV格式,分为html返回(url | status code | title | 响应长度) 和 json返回 (url | status code | JSON | 响应长度),二者皆无返回None
- 200相关
需要结合页面关键字、响应headers content-length、页面相似度等判断网站状态
- 30x
允许请求跳转,allow_redirects=True
- 403 如果网站某目录扫描返回403?此时访问该目录url + 随机字符串:
- 如果返回403,则有一定概率是除了该目录下的某些资源可能访问外,访问其他资源都返回403,此时探测成功率低
- 如果返回404,说明web服务器有去该目录下查找对应资源,该目录探测价值较大
- 404 如果网站某目录扫描返回404?此时访问该路径url + 随机字符串:
因为DirScan中会有大量404响应,此时继续探测价值低,放弃继续扫描
- 50x
重试处理,可能网站某段时间服务端异常,需要多次请求才能判断
- 应该正常路径: 响应码 200、30x为主
- 潜在探测价值目录:403为主
- 无探测价值路径,404,50x为主
- 单个网站扫描频率控制或者配置代理,防止封IP
- 扫描路径数量过大时,进行大任务拆分