第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获取逻辑完全不同 法律风险与资源获取难度是核心限制 ⭐⭐⭐⭐⭐
相关推荐
Selicens16 小时前
git批量删除本地多余分支
前端·git·后端
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
闲云一鹤2 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
vibecoding日记4 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具