1. 入口层:资产发现与路由机制

战术指导:这是攻击的起点。

  • 核心问题:目前访问的是核心主站还是边缘分站?URL 是直接对应文件还是经过了 MVC 路由?
  • 实战意义:确定攻击面的广度(子域枚举)与深度(路由绕过/解析漏洞)。

1.1 域名架构差异 (Domain)

明确站点的业务定位,决定投入的测试成本与策略:

  • 主站 (www.locreics.com) 核心业务,防御最严,通常需要高级 0day 或复杂逻辑漏洞。

  • 分站 (blog.locreics.com) 通常为 CMS 或独立系统,易出现通用漏洞,是内网突破口。

  • 子站 (nb.blog.locreics.com) 多级域名,常见于 SaaS 多租户模式或泛解析,关注 越权访问 与数据隔离。

  • 端口站 (www.locreics.com:88) 非标端口,常为管理后台、测试环境或 中间件 接口,易存在 弱口令

  • 目录站 (www.locreics.com/bbs/) 同一服务器下的不同应用,一旦突破可直接通过文件系统影响主站。

1.2 解析与路径差异 (Parsing)

从 URL 推断后端的处理逻辑,寻找绕过 WAF 或执行代码的机会:

  • URL 路由模型

    • MVC 路由:URL 对应控制器(Controller)而非物理文件(如 ThinkPHP)。
    • 物理映射:URL 直接对应服务器上的文件。
  • 路径访问模式

    • 相对路径:相对于当前上下文。
    • 绝对路径:服务器完整路径(利于写 WebShell)。
  • 格式与权限控制

    • 解析漏洞:利用 Web Server 解析差异(如 Nginx解析漏洞)执行非脚本文件。
    • 目录权限:上传目录是否有执行权限?代码是正常执行还是被当做文本读取?

2. 支撑层:环境与中间件指纹

战术指导:请求到达服务器后的运行环境。

  • 核心问题:目标跑在什么系统上?用什么容器?中间件版本是否有 CVE?
  • 实战意义:决定是否能利用系统级漏洞(提权)或中间件特性(解析/反序列化)。

2.1 平台架构差异 (Platform)

  • 操作系统 (OS) Windows (不区分大小写), Linux (权限严格), MacOS

  • 容器化技术 (Container) Docker, K8s, Vmware, VirtualBox

    • 注意:拿到 Shell 后需判断是否在 Docker 内,涉及 容器逃逸
  • 中间件 (Middleware) 决定了解析规则与特定漏洞: Apache, Nginx, IIS, lighttpd (轻量级), Tomcat, Jboos, Weblogic, Websphere, Jetty (Java系常见)。

3. 逻辑层:源码与应用框架

战术指导:业务逻辑的核心实现。

  • 核心问题:什么语言?什么框架?开源还是闭源?
  • 实战意义:精准选择 Payload(如 Java 反序列化 vs PHP 变量覆盖),以及决定是 白盒审计 还是 黑盒测试

3.1 开发语言 (Language)

识别后缀或指纹: ASP, ASPX (微软系), PHP (Web王道), Java (企业级), Python, Go, Javascript (Node.js).

3.2 框架组件 (Frameworks)

这是漏洞挖掘的重灾区,特定框架对应特定利用链:

3.3 源码性质与结构 (Source Code)

  • 开源类型

    • 开源:如 Zblog(下载源码 白盒审计 找通杀)。
    • 闭源:如内部开发(完全黑盒测试 Fuzzing)。
    • 加密:如 通达OA(源码混淆 审计困难)。
  • 目录结构指纹 通过常规目录猜测功能点: 后台目录 (admin), 文件目录 (upload), 逻辑目录 (include), 前端目录 (static), 数据目录 (data), 配置文件 (config - 重点关注)。

4. 数据层:存储与权限

战术指导:攻击的最终战利品。

  • 核心问题:数据存在哪?数据库能否提权?
  • 实战意义:决定了 SQL注入 的语法(MySQL vs Oracle),以及拿到数据库权限后能否 横向移动 到服务器。

4.1 数据库类型 (Database)

根据端口或报错识别数据库: Access (文件型), MySQL (最常见), SQLServer, Oracle, Redis (NoSQL/缓存), DB2, Postgresql, MongoDB 等。

4.2 存储部署架构 (Architecture)

  • 本地数据库 数据库与 Web 在同一服务器。

    • 机会:SQL 注入可尝试写入 Webshell (into outfile) 或系统提权。
  • 分离数据库 数据库在独立服务器。

    • 机会:无法直接 GetShell,但可作为内网横向移动的跳板。
  • 云数据库 使用 RDS 等云服务。

    • 限制:通常无系统权限,仅能获取数据,难以提权。