信息收集-架构源码识别指南

AI-摘要
28.7Blog GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
信息收集-架构源码识别指南
28.7的博客架构源码识别
当我们初次接触网站,需对其进行初步识别,核心包括域名数量、旁段地址、C段地址等信息收集——多数企业会重点防护主站点,可能忽略子域名或C段的安全,因此需从网站框架、前后端库、开源属性、流量特征切入,结合前端引入的JS文件、开发者面板加载项等细节,实现精准识别。
1. 从框架切入识别
1.1 开源框架识别
不同企业因预算差异会选择不同开源框架(如预算有限选Z-blog,追求稳定选ThinkPHP、Webman或WordPress),识别核心围绕“指纹匹配+信息延伸收集”,以下以kong.college为例展开。
1.1.1 开源CMS指纹识别工具
通过专业工具直接匹配网站的开源框架特征,是最高效的初步识别方式,常用工具如下表:
| 工具类型 | 工具名称 | 地址/仓库链接 |
|---|---|---|
| 指纹识别 | Wappalyzer | https://github.com/AliasIO/wappalyzer |
| 指纹识别 | TideFinger(潮汐) | http://finger.tidesec.net/ |
| 指纹识别 | 云悉指纹 | https://www.yunsee.cn/ |
| 指纹识别 | WhatWeb | https://github.com/urbanadventurer/WhatWeb |
| 指纹识别 | 数字观星Finger-P | https://fp.shuziguanxing.com/#/ |
| 子域名收集 | JSFinder | (注:常用子域名&JS提取工具,需通过GitHub获取最新版本) |
1.1.2 典型工具识别效果演示
TideFinger(潮汐)
局限性:未获取到语言相关信息,识别维度较浅。Wappalyzer
优势:覆盖维度全面,可识别前端框架、后端语言、服务器中间件等杂项信息。JSFinder
核心价值:不仅能收集子域名,还能提取网站引入的JS文件,通过目录结构辅助框架识别。
- WhatWeb
特点:命令行工具,支持批量扫描,可识别Web框架、CMS、中间件、编程语言等。
1.1.3 开源框架信息延伸收集
通过指纹工具识别出框架后(如kong.college为Hexo静态博客),可进一步通过代码托管平台收集敏感信息——开源代码作者常在版本控制文件(如composer.json)中留下邮箱、姓名等,可用于关联搜索。
1.1.3.1 GitHub资源搜索语法
1 | in:name test # 仓库标题含"test" |
1.1.3.2 谷歌搜索语法(针对敏感配置)
1 | site:Github.com smtp # GitHub上含"smtp"的内容 |
1.1.3.3 源码关联操作
- 获取源码(工具识别/抓包)后,在源码文件夹中搜索目标特征(如
qq.com、企业域名); - 提取到作者邮箱、姓名等信息后,用上述语法在GitHub/谷歌中二次搜索,定位更多关联源码。
2. 闭源框架与源码泄露识别
闭源框架无公开指纹可匹配,需通过“习惯特征+配置信息+流量分析”辅助识别,核心突破口是源码泄露——管理员操作不当可能暴露网站源码,常见泄露类型如下。
1、从源码本身的特性入口
2、从管理员不好的习惯入口
3、从管理员不好的配置入口
4、从管理员不好的意识入口
5、从管理员资源信息搜集入口
2.1 闭源框架识别思路
- 核心维度:资源托管平台痕迹(如自定义CDN、私有服务器路径)、前端接口格式(如统一的API前缀、参数命名风格)、错误页面特征(如自定义404/500页面的开发标识)。
- 关键动作:分析开发者工具的“Network”面板,提取接口响应头、Cookie字段(如自定义Session名称),推断后端技术栈。
2.2 常见源码泄露类型与利用
2.2.1 Git源码泄露
- 原理:Git初始化目录时生成
.git文件夹(记录代码变更),若未删除直接部署到服务器,攻击者可恢复源码。 - 利用工具:GitHack(仓库地址:https://github.com/lijiejie/GitHack)
- 用法示例:
GitHack.py http://www.openssl.org/.git/ - 工具下载:
2.2.2 Mac目录结构(.DS_Store)泄露
- 原理:macOS的Finder生成
.DS_Store文件(记录文件夹展示配置),若上传到服务器,会暴露文件目录结构(如备份文件、源码路径)。 - 工具下载:
2.2.3 SVN源码泄露
- 原理:SVN版本控制生成
.svn文件夹(含源代码信息),若直接复制目录到服务器,可通过.svn/entries文件获取源码。 - 工具下载:
2.2.4 Vim临时文件泄露
- 原理:Linux的Vim编辑文件时生成隐藏临时文件(如
.文件名.swp),若非正常关闭Vim,临时文件会保留,可恢复原始文件内容。 - 识别特征:访问
http://目标域名/.文件名.swp,若返回文件下载,即存在泄露。 - 示例截图:
2.2.5 备份文件泄露
- 原理:管理员将源码备份在Web目录下(如
backup.rar、source.bak),攻击者通过猜解路径下载备份文件。 - 常见备份后缀:
.rar、.zip、.7z、.tar、.gz、.bak、.txt、.old、.temp - 利用工具:御剑、dirsearch(目录扫描工具)
- 工具下载:
2.2.6 PHP特性(.phps)源码泄露
- 原理:
.phps是PHP源代码文件,配置不当会允许浏览器直接查看PHP脚本的原始代码(而非执行结果)。 - 识别方式:访问
http://目标域名/关键文件.phps(如index.phps),若显示PHP源码,即存在泄露。 - 示例截图:
2.2.7 GitHub(私有)源码泄露
- 原理:开发者误将企业闭源项目上传到GitHub公开仓库,或私有仓库权限配置错误(如允许匿名访问)。
- 识别技巧:用目标企业域名、项目名称、开发者邮箱作为关键词,通过1.1.3的搜索语法定位泄露源码。
- 核心提醒:“人”是最大漏洞,需重点关注企业员工的代码托管习惯。
2.2.8 PHP Composer.json泄露
- 原理:
composer.json是PHP项目的依赖配置文件,含项目名称、版本、作者、依赖库等信息,可辅助推断技术栈及敏感信息。 - 常见属性说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{
"name": "包名称",
"description": "包描述",
"version": "包版本",
"type": "包类型(如library、project)",
"keywords": "搜索关键字数组",
"homepage": "项目官网URL",
"readme": "README文档绝对路径",
"time": "版本发布时间",
"license": "许可证类型(如MIT)",
"authors": "作者信息数组(含name、email)",
"support": "项目支持信息(如issues链接)",
"require": "必须安装的依赖包列表",
"autoload": "PHP自动加载映射配置",
"minimum-stability": "依赖包稳定性过滤默认值",
"repositories": "自定义依赖安装源",
"config": "Composer配置选项",
"script": "安装过程执行的脚本",
"extra": "脚本扩展数据"
} - 示例截图:
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果









