第7天:信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份|【小迪安全】web安全|渗透测试|网络安全-2021

第7天:信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份

一、上节内容回顾

00:29

  • 源码获取重要性:获取源码后可进行白盒测试(代码审计),否则只能进行效果较差的黑盒测试
  • 课程主题:围绕代码获取方式展开,涉及CMS识别技术和针对性工具使用

二、资产泄漏

01:28

1. 资产泄漏原因

03:08

  • 特性入口:源码本身的特性导致
  • 习惯问题:管理员不良操作习惯
  • 配置问题:网站配置错误
  • 意识问题:安全意识不足
  • 信息搜集:通过资源监控获取

2. 资产泄漏集合

03:26

  • 版本控制相关:git/svn/hg源码泄露
  • 配置文件:composer.json/WEB-INF/web.xml
  • 系统文件:DS_Store/SWP文件
  • 备份文件:网站备份压缩包

3. 应用案例

03:44

1)例题:直接获取CMS资源

03:59

  • 识别原理:通过指纹特征识别网站使用的CMS系统
  • 操作流程:
    • 使用识别平台查询目标网站
    • 获取CMS名称和版本信息
    • 搜索对应源码下载
  • 注意事项:
    • 仅适用于有公开指纹的系统
    • 大型网站(如百度)多为自研系统无法识别
2)例题:备份文件源码泄漏

14:52

  • 产生原因:管理员在网站根目录直接备份
  • 危害:通过扫描可获取完整源码
  • 防护建议:
    • 在上一级目录备份
    • 使用非常规命名
    • 设置访问权限
3)例题:配置不当GIT/SVN/DS_Store源码泄漏

19:49

  • GIT泄漏:
    • 暴露.git目录
    • 使用GitHack工具可恢复完整版本库
  • SVN泄漏:
    • 暴露.svn目录
    • 使用SvnHack工具提取
  • DS_Store:
    • Mac系统自动生成文件
    • 包含目录结构信息

三、源码获取方法总结

  • 直接获取:通过CMS识别下载官方源码
  • 间接获取:
    • 扫描备份文件(zip/rar等)
    • 利用版本控制泄漏(git/svn)
    • 解析系统文件(DS_Store)
    • GitHub等平台搜索
  • 测试价值:获取源码后可进行代码审计,发现更多漏洞

四、Git源码泄露

20:21

1. Git泄露定义

20:31

  • 本质原因:开发者在发布代码时未删除.git目录,导致版本控制信息暴露
  • 泄露内容:通过.git目录可恢复完整的源代码变更记录
  • 漏洞利用工具:GitHack(项目地址:https://github.com/lijiejie/GitHack)
  • 典型特征:访问目标网站/.git返回403状态码(存在但禁止访问)
  • 修复建议:
    • 删除.git目录
    • 修改中间件配置禁止访问.git隐藏文件夹

2. 应用案例

21:17

1)例题:Git泄露案例
  • 检测方法:
    • 在网站URL后追加/.git路径
    • 返回403状态码即存在漏洞
  • 利用过程:
  • 实际案例:

3. 文件下河

22:04

1)Git
  • 产生原因:
    • 开发者使用IDE自动同步功能
    • 发布时直接复制整个项目目录
    • 管理员安全意识不足未清理版本控制文件
  • 危害等级:
    • 高危漏洞,可直接获取业务源代码
    • 可能发现数据库配置等敏感信息
2)SVN

26:57

五、应用案例

28:01

1. 例题:网站源码下载

六、课程回顾

28:19

  • 操作验证流程:
    • 先测试目标是否存在漏洞("我们来试一下发问这个例子,看它是否存在")
    • 使用真实案例进行演示("我这都是找的真实的...它是有用武之地的")
    • 强调工具的实际应用价值
  • 环境配置注意:
    • 明确工具存放路径("找到这个脚本工具下载的目录")
    • 注意Python版本差异("因为我的环境变量呢,拍子呢是拍子三的,他不支持")
    • 需要手动指定Python2解释器路径执行

七、SvnHack辅助工具

28:42

1. SvnHack辅助工具介绍

  • 功能概述:用于检测和利用SVN信息泄露漏洞,可列取网站目录、读取源码文件及下载整站代码
  • 核心参数:
    • -u/--url:指定SVN目标地址(如http://x.x.x.x/.svn/entries)
    • -d/--dic:列出指定目录内容
    • -r/--read:读取特定文件内容
    • --download:下载整个站点代码
  • 执行要点:必须使用-u参数指定目标地址,否则会报错(演示中因漏写参数导致执行失败)

2. 应用案例

28:54

1)例题:网站目录下载
  • 操作流程:
    • 执行python SvnHack.py -u http://trafficbonus.com/.svn/entries --download
    • 自动创建目录结构并下载文件(国外站点下载速度较慢)
    • 获取加密/未加密的源码文件(如.php文件可查看业务逻辑)
  • 漏洞成因:开发者未删除版本控制目录(.svn)导致源码泄露
  • 典型特征:恢复的源码中可能包含配置文件、数据库连接信息等敏感内容
2)例题:DNS配置不当文件下载

31:30

  • 文件特性:Mac系统自动生成的隐藏文件,记录目录结构
  • 利用方法:
  • 实战价值:适用于Mac开发的网站,但现代网站已较少存在此问题
3)例题:common gs配置文件

35:00

  • 文件作用:PHP项目的依赖声明文件(类似Java的pom.xml)
  • 信息价值:
    • 包含框架名称(如ThinkCMF)、版本号、插件信息
    • 示例:通过composer.json识别出ThinkCMF系统
  • 检测方法:直接访问/composer.json路径
  • 适用场景:仅限PHP项目,其他语言项目不适用
4)例题:配置文件泄露

41:15

  • 文件定位:Java Web应用的WEB-INF/web.xml文件
  • 关键信息:
    • Servlet映射关系(示例中/heap.do对应com.example.demo.HelloController)
    • Class文件存储路径(/WEB-INF/classes/)
  • 利用限制:
    • 需配合文件下载漏洞(如示例中的download?filename=参数)
    • 单独获取配置文件无法直接下载class文件
  • CTF应用:在RoarCTF 2019-EasyJava题中,通过下载web.xml找到flag控制器路径

3. 知识点拓展

48:00

  • 漏洞成因分析:源码泄露主要源于五个方面:备份文件习惯、开发环境残留、版本控制疏忽、管理员意识薄弱以及特性文件未清理。
  • 实战思维培养:看似不重要的知识点往往隐藏解题突破口,关键在于理解漏洞产生原理和适用条件,例如通过特性文件(如.git/.svn)获取源码。
  • 信息关联技巧:通过js文件中的版权信息、邮箱等线索,在代码托管平台反向关联可能泄露的源码项目。

4. 应用案例

51:34

1)例题:GitHub泄露
  • 搜索策略:
    • 使用域名/邮箱等关键字段在代码库中检索
    • 结合filename:限定文件类型,如filename:web.xml
    • 通过stars:筛选热门项目提高命中率
  • 信息挖掘:
    • 博客域名→关联GitHub账号→发现62个相关代码库
    • 开发者ID→定位历史项目→获取swp备份文件
  • 自动化监控:建立脚本持续监控新提交,第一时间获取目标关联代码更新。
2)例题:网站源码下载

55:55

  • 线索发现:
    • 从网页加载的js文件中提取版权信息
    • 捕获扫描工具输出的管理员邮箱
  • 逆向追踪:
    • 将zblog版权文本作为关键词全网搜索
    • 在GitHub发现3个相同声明的源码项目
  • 防御建议:
    • 删除源码中的敏感注释和测试账号
    • 使用代码混淆工具处理前端js文件
    • 定期审计网站目录下的临时文件

八、信息收集方法

01:07:23

1. 中间件判断方法

  • 路径后缀观察法:通过查看URL路径的后缀特征来判断使用的编程语言(如.php/.jsp等)
  • 搜索引擎检索法:利用搜索引擎查找特定脚本特征(如搜索"powered by WordPress")
  • 答卷组合推算法:通过数据包特征和端口服务组合分析进行技术栈推测

2. 操作系统识别

  • 大小写敏感测试:通过文件路径大小写测试判断操作系统类型(Linux区分大小写,Windows不区分)
  • TTL值分析:通过网络数据包的TTL初始值判断操作系统(如Linux默认64,Windows默认128)

3. 源码分类与获取

1)源码三大类型
  • CMS开源系统:具有标准化结构和公开漏洞库(如WordPress、DedeCMS)
  • 商业闭源系统:需通过授权获取,漏洞信息较少(如Oracle产品)
  • 自主开发系统:定制化程度高,需针对性分析
2)源码获取途径
  • 正规渠道获取:
    • 开源CMS:直接官网下载
    • 商业系统:合法购买授权
  • 非常规渠道获取:
    • 黑产源码:需通过特定暗网渠道获取(如博彩/诈骗类系统源码)
    • 历史漏洞利用:通过已知漏洞获取源码包

4. 域名收集技巧

  • 相似域名挖掘:通过主体名称变形发现关联域名(如taobao.com vs taoba0.com
  • 反常域名识别:观察非常规域名组合(如数字+随机字母组合)
  • 旁站查询技术:通过IP反查发现同服务器其他站点

5. 信息收集价值

  • 漏洞利用基础:源码分析可发现已知漏洞和自定义漏洞
  • 攻击面扩展:通过子域名/旁站发现更多渗透入口
  • 防御规避:了解系统架构可定制化攻击载荷避免触发防护

九、知识小结

知识点 核心内容 考试重点/易混淆点 难度系数
CMS识别技术 通过指纹识别(如版权信息、文件特征)或工具(如任希平台)确定网站使用的CMS程序 需区分开源CMS、商业程序与自主研发系统的识别差异 ⭐⭐
源码泄露途径 1. 备份文件泄露(如www.zip) 2. 版本控制泄露(.git/.svn目录未删除) 3. 配置不当(如DS_Store、web.xml文件暴露) 4. 开发者习惯(如composer.json泄露PHP框架信息) 5. 托管平台泄露(GitHub/Gitee敏感信息搜索) 备份文件路径错误与版本控制工具恢复原理是实操难点 ⭐⭐⭐
Git/SVN泄露利用 使用工具(GitHack/SVNExploit)恢复历史代码,需存在.git或.svn目录且可访问 四零三状态码可能表示目录存在但无权限 ⭐⭐⭐⭐
黑盒与白盒测试对比 白盒测试(源码审计)效率高于黑盒,但依赖源码获取能力 源码获取是安全测试的关键前置步骤 ⭐⭐
GitHub信息搜集 通过关键字(域名、邮箱、JS文件名)搜索公开代码库,关联目标资产 需掌握高级搜索语法(如site:、filename:) ⭐⭐⭐
Web.xml文件利用 JAVA应用中通过下载漏洞获取web.xml,解析路径结构后下载class文件 需配合文件下载漏洞,实战中较少独立生效 ⭐⭐⭐⭐
违法类源码获取 需通过黑色产业渠道搜索,与正规CMS获取逻辑完全不同 法律风险与资源获取难度是核心限制 ⭐⭐⭐⭐⭐
相关推荐
Ancelin安心9 小时前
FastJson反序列化和Shiro漏洞
java·运维·开发语言·安全·web安全·json·idea
艺杯羹10 小时前
Git版本控制深度复盘:从入门到精通的完整指南
git·wpf·版本控制·git学习·git复盘
麦聪聊数据10 小时前
如何用 B/S 架构解决混合云环境下的数据库连接碎片化难题?
运维·数据库·sql·安全·架构
Ghost Face...13 小时前
嵌入式Linux开发Git实战:从认证到Gerrit推送
linux·git·elasticsearch
Amy1870211182314 小时前
绝缘监测装置AIM-T300 筑牢安全防线
安全
x-cmd16 小时前
[x-cmd] QEMU 10.2.0 发布:虚拟机实时更新与性能飞跃的技术深度解读
安全·qemu·虚拟机·x-cmd
少云清17 小时前
【安全测试】3_网络安全测试 _数据加密和数据签名
安全·web安全
独行soc18 小时前
2026年渗透测试面试题总结-23(题目+回答)
网络·python·安全·web安全·渗透测试·安全狮
半兽先生19 小时前
为什么你的 Token 不该由前端存储?—— 深入理解 HttpOnly Cookie 与前端 Cookie 的安全差异
前端·安全