Skip to content

Commit

Permalink
更新说明
Browse files Browse the repository at this point in the history
  • Loading branch information
winezer0 committed Jun 29, 2023
1 parent 2233fab commit c090b8e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 52 deletions.
79 changes: 27 additions & 52 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -53,24 +53,22 @@ runtime/runtime_error.log 错误信息(需要关注)

```
结果目录:result
result/{主机名}_result.csv 正常结果的项目(需要关注)
result/{主机名}_manual.csv 需要手动访问测试的项目(需要关注)
result/{主机名}_error.csv 发生编码等错误信息(其中需要手动测试的项目会写入到manual)
result/{目标}_result.csv 正常结果的项目(需要关注)
result/{主机名}_ignore.csv 被404等静态特征及响应内容对比的动态特征排除的项目
```

#### 3.命中记录文件路径及说明

```
runtime/runtime_visited.log 记录已完成扫描的目标,实现断点续传
dict_hit/ 中存放命中的扫描结果,实现字典的不断优化
```

### 1.1、程序开发目的

```
1. 基于网站路径【深入的、动态的】检测指定目录下的敏感文件,并支持自动过滤大部分不存在的路径。
1. 基于网站路径【动态检测】指定目录【根目录和当前目录】下的敏感文件,并支持自动过滤大部分不存在的路径。
2. 开发前主要关注于根目录下的备份文件扫描,但对于根目录下其他敏感文件也可以完美支持
2. 开发前主要关注于根目录下的备份文件扫描,目前结构已支持结合dirsearch等扫描结果进行敏感文件扫描
3. 支持自动分割带有多个目录层级的为多个基本URL进行扫描,但不支持自动递归目录进行扫描。
```
Expand Down Expand Up @@ -103,15 +101,7 @@ runtime/runtime_visited.log 记录已完成扫描的目标,实现断点续传
(由于规则解析的格式需要,因此对字典内容存在格式要求,具体规则编写办法参考下文)
```

#### 2、扫描字典添加支持多种方案,不同的需求可以添加到不同的字典目录中。

```
1、支持添加直接拼接到URL后的字典
2、支持笛卡尔组合的目录和字典)
3、不同目录下的字典在拼接到URL时,有不同的处理方式,具体参考下文
```

### 2.2、HTTP请求配置

Expand All @@ -120,9 +110,9 @@ runtime/runtime_visited.log 记录已完成扫描的目标,实现断点续传
简单输入——URL或URL文件,支持检测目标是否可以访问
扩展输入——自动分析处理HOST格式[IP:PORT,Domain],自动检测分析请求协议
2、默认启用中文路径或特殊字符会添加分别以【gb2312、utf-8】作为基础编码进行URL编码。
2、默认启用中文路径或特殊字符会添加分别以【utf-8】作为基础编码进行URL编码。
3、请求时大量的参数配置在setting.py中有描述和支持,用户可自定义大部分的参数配置。
3、请求时大量的参数配置在setting_xxx.py中有描述和支持,用户可自定义大部分的参数配置。
4、对已经访问过的URL可以进行过滤,不进行多次扫描。
Expand Down Expand Up @@ -158,16 +148,26 @@ runtime/runtime_visited.log 记录已完成扫描的目标,实现断点续传
## 3、字典目录结构

```
1. 所有字典默认存放在dict目录,其目录下存在4个目录(base_var,direct_path,group_folder,group_files),存放不同类型的字典文件。
2. 字典文件的后缀默认设置为【.lst】,默认只读取目录下该后缀的字典文件。(该参数在setting.py中可以自定义)
3. 如有需求,后续可考虑使用sqlite存储字典数据库,但是手动修改目录会变得复杂.
1. 字典文件的后缀默认设置为【.lst】,默认只读取目录下该后缀的字典文件。(该参数在setting_***.py中可以自定义)
2. dict_base 存放基本变量字典,每个文件名或目录名都是一个基本变量,其内容是文件|目录所包好的文件的内容。
3、dict_rule 存放扫描规则字典, 扫描字典添加支持两方案,不同的需求可以添加到不同的字典目录中。
3.1、base_root文件夹 添加直接拼接到URL根目录后的字典
3.2、base_path文件夹 添加直接拼接到当前URL目录后的字典
dict_rule 目录下的文件名无特殊的命名要求,会读取目录下所有符合定义的自定后缀的文件内容。
dict_rule 目录存放的字典的规则内容会被【规则解析+基本变量替换+因变量替换】,然后根据所在目录类型,添加到URL当前目录或根目录之后。
4、每一行字典支持追加 【<-->XXX】 字段用于表明字典频率,用于阈值筛选来决定是否加载该路径。
```

### 3.1、dict_base目录

```
base目录存放基础变量字典,每个基础变量字典用于自动替换字典规则中的对应基础变量(由文件名提取)。
dict_base目录存放基础变量字典,
每个基础变量字典用于自动替换字典规则中的对应基础变量(由文件名提取)。
```

#### 3.1.1 dict_base目录下字典文件命名和产生的基本变量:
Expand All @@ -194,34 +194,7 @@ base目录存放基础变量字典,每个基础变量字典用于自动替换字
1、dict_base字典目录下存放最基础的变量字典,每一行仅且支持一条[{xxx:xx=xxxx}$]格式的动态替换规则,不支持基础变量和因变量。
2、dict_base字典目录下的字典文件命名【如xxx.lst】和其他目录下的字典规则中的基础变量【%xxx%】有强关联性。

### 3.2、dict_rule/模块/direct目录

#### 3.2.1 direct目录下的字典介绍:

```
direct目录下的文件名无特殊的命名要求,会读取目录下所有符合定义的自定后缀的文件内容。
```

#### 3.2.2、direct目录下的字典处理:

```
direct 目录存放的字典的规则内容会被【规则解析+基本变量替换+因变量替换】,然后直接添加到URL之后。
```

### 3.3、dict_rule/模块/folders 和 dict_rule/模块/files目录

#### 3.3.1 folders 和 files目录下的字典介绍:

folders目录下仅仅存放用于组合的目录字典文件,字典的每一行是一个目录,字典文件名命名除后缀外没有要求。
files 目录下仅仅存放用于组合的文件名字典,字典的每一行是一个文件名,字典文件名命名除后缀外没有要求。

### 3.2.2、folders 和 files目录下的字典处理

1、从folders目录下的所有文件读取到一个folder列表,并对列表元素进行【规则解析+基本变量替换】
2、从files目录下的所有文件读取到一个file列表,并对列表元素进行【规则解析+基本变量替换】
3、对folder列表和file列表,会以/{folder}/{file}的格式进行遍历拼接(笛卡尔集)。

PS:所有的因变量替换实际是在循环目标的时候处理的,因为只有此时才能获取到所有的因变量
###

## 4、字典文件内容编写规则

Expand All @@ -239,13 +212,15 @@ direct 目录存放的字典的规则内容会被【规则解析+基本变量替
-h, --help show this help message and exit
-u TARGET 指定扫描目标URL|目标URL文件, Example: http://www.baidu.com | target.txt
-d debug 显示程序运行时的所有调试信息,默认关闭




Examples:
python3 DynaScan.py -u http://www.baidu.com
python3 DynaScan.py -u target.txt




其他控制细节参数请通过Setting.py进行配置

## 6、程序参考说明
Expand Down
2 changes: 2 additions & 0 deletions 历史更新记录.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
## 历史更新记录

```
20230629 【BUG修复】优化字典、重构代码,不再使用全局变量传递参数
20230616 【BUG修复】修复因变量未生效问题
DynaScan.py -u http://127.0.0.1/aaa/ -r backup
[+] 可能存在 [http://127.0.0.1/aaa/web.zip]
Expand Down

0 comments on commit c090b8e

Please sign in to comment.