第13天:信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&D_笔记
一、信息打点
00:00
1. 业务资产
03:42
1)应用类型分类
- 开源应用:
- 定义: 指能够从网上直接下载或已公开的程序源码
- 特点: 通常发布在主流源码平台(如站长源码、源码之家等)
- 示例: Discuz!、织梦CMS等知名CMS系统
- 获取方式: 可通过源码下载站点直接获取
- 闭源应用:
- 类型一: 源码存在但未在主流平台发布
- 特点: 使用场景局限或较为冷门
- 示例: 小型企业自用系统、特定行业专用软件
- 类型二: 完全未公开的私有系统
- 特点: 仅限内部使用,网上无公开信息
- 示例: 企业定制开发的内部管理系统
- 类型一: 源码存在但未在主流平台发布
2)Web单域名获取
06:06
- 接口查询:
- 常用工具: Whois查询、备案查询接口
- 特点: 通过官方API获取标准化信息
- 解析枚举:
- 技术实现: DNS记录查询、子域名爆破
- 进阶方法: 使用搜索引擎语法(如site:domain.com)
- 源码获取:
- 开源项目:
- 渠道: GitHub、码云等代码托管平台
- 工具: GitHack、SVNExploit等源码泄露扫描工具
- 闭源项目:
- 方法1: 分析配置习惯(如常见备份文件命名)
- 方法2: 托管资产平台监控(如企业网盘、内部文档系统)
- 开源项目:
- 指纹识别平台:
- 在线服务: WhatWeb、BugScaner在线检测
- 本地工具: Wappalyzer浏览器插件
- 专业系统: TideFinger潮汐指纹库
- 识别维度:
- CMS特征: 特定文件路径、HTTP头信息
- 框架标识: 如Vue.js的$vue特征
- 代码特征: 注释信息、版权声明
2. Web应用源码泄漏
06:21
1)演示案例
- 指纹识别方法:通过CMS信息识别目标网站框架,例如识别到Z-Blog系统时,可通过百度搜索官网获取程序信息
- 源码获取途径:
- 开源程序:直接从官网下载(如Z-BlogPHP 1.7.2版本)
- 闭源程序:通过GitHub等资源平台查找泄漏源码
- 配置不当:访问网站特殊目录(如/user、/system)验证目录存在性
- 验证步骤:
- 下载程序后对比网站目录结构
- 访问疑似目录观察状态码(403表示目录存在)
- 确认目录结构与下载源码匹配度
- 注意事项:
- 不同版本差异:ASP平台与PHP平台程序需区分(如Z-BlogASP 2.3与Z-BlogPHP)
- 中间件特征:Apache组合环境是常见部署方式
- 后续应用:
- 漏洞挖掘:分析源码中可能存在的安全问题
- 渗透测试:根据已知漏洞特征进行针对性测试
- 信息收集:获取程序版本、插件等敏感信息
- 技术要点:
- 状态码解读:403状态码确认目录存在
- 指纹平台:使用专业工具提高识别准确率(识别率可达150%)
- 版本对比:通过文件修改日期(如2021-10-01)验证源码时效性
3. Web架构资产
08:44
1)演示案例
- 常用指纹识别工具:
- WhatWeb:http://whatweb.bugscaner.com/look/
- Wappalyzer:https://github.com/AliasIO/Wappalyzer
- 潮汐指纹(TideFinger):http://finger.tidesec.net/
- 云纹:https://www.yunsee.cn/
- 数字星Finger-P:https://fp.shuziguanxing.com/
- 源码泄漏检测:
- 开源项目参考:
- DVCS-Ripper:https://github.com/kost/dvcs-ripper
- GitHack:https://github.com/lijiejie/GitHack
- SvnHack:https://github.com/callmefeifei/SvnHack
- DS_Store:https://github.com/lijiejie/DS_Store_exp
- 开源项目参考:
- 常见泄漏文件类型:
- WEB-INF/web.xml:应用程序配置文件,描述Servlet和其它应用配置及命名规则
- DS_Store文件:Mac系统自动生成的目录信息文件
- WP文件:WordPress相关配置文件
- CVS泄露:版本控制系统遗留文件
- 指纹识别注意事项:
- 识别局限性:不是所有网站都能被准确识别,这是正常现象
- 常见源码泄漏途径:
- Git源码泄漏
- SVN源码泄漏
- 网站备份文件泄漏
- 管理员资源信息搜集入口:
- composer.json文件
- 版本控制系统文件
- CMS识别案例:
- Z-BlogPHP:开源免费的博客程序与CMS建站系统
- 特点:小巧强大,支持宝塔面板一键部署
- 安装程序路径:/zb_install/
- 实战技巧:
- 当指纹识别失败时,可尝试以下方法:
- 检查常见源码泄漏点
- 分析网站目录结构
- 查找版本控制文件
- 检查网站备份文件
- 查看管理员资源信息
- 当指纹识别失败时,可尝试以下方法:
4. Web源码泄漏
10:17
1)文章介绍
10:46
- 网站备份文件泄露11:01
- 泄露原因:管理员开发习惯或配置不当导致源码备份文件被公开访问
- 常见备份文件:wwwroot.zip、3w.zip等基于域名命名的压缩包
- 泄露内容:不仅包含源码,还包括数据库配置文件等敏感信息
- 利用方法:使用敏感目录扫描工具(如御剑)发现并下载备份文件
- 防护建议:备份文件应存放在非网站目录,避免直接暴露在web可访问路径下
- 备份操作流程:选中源码目录→右键添加压缩包→基于域名命名(如3w.zip)→生成压缩文件
- 典型漏洞场景:管理员将备份压缩包直接存放在网站根目录下
- Git源码泄露13:44
- 泄露原因:开发人员发布代码时未删除.git版本控制目录
- 泄露内容:完整的代码变更记录和版本控制信息
- 利用工具:GitHack(https://github.com/lijiejie/GitHack)
- 工具原理:解析.git/index文件→下载objects目录下的文件→重建源代码
- 防护建议:
- 发布前删除.git目录
- 使用中间件限制对.git目录的访问
- 工具功能:通过暴露的.git文件夹重建完整源代码工程
- 后续利用:审计代码挖掘文件上传、SQL注入等安全漏洞
- 使用示例:python GitHack.py http://example.com/.git/
- SVN泄露:
- 特征文件:.svn隐藏目录
- 泄露原因:直接复制代码文件而非使用导出功能
- 防护:删除.svn目录,严格使用导出功能
- HG泄露:
- 特征文件:.hg目录
- 工具:dvcs-ripper
- Bazaar泄露:
- 特征文件:.bzr目录
- 特点:支持多平台且有图形界面
2)应用案例
15:47
- IDE文件残留导致源码泄露16:00
- 泄露原理:开发工具(如PyCharm)会在项目中生成.idea等配置文件,若发布时未删除这些文件,攻击者可通过访问/.idea/目录获取项目结构信息
- 检测方法:直接在网站URL后添加/.idea/路径访问,返回403表示目录存在(可能泄露),404则表示不存在
- 风险示例:案例中访问121.36.49.234/.git/返回403错误,证实存在git目录泄露风险
- Git目录未删除导致源码泄露16:10
- 泄露原理:git init会在目录下生成.git文件夹记录代码变更历史,若发布时未删除,攻击者可通过git工具恢复源代码
- 利用工具:
- GitHack(项目地址:https://github.com/lijiejie/GitHack)
- 使用方法:python GitHack.py http://target/.git/
- 恢复过程:工具会下载.git目录中的对象文件,重建项目代码结构,但可能无法获取全部代码(仅包含git跟踪过的文件)
- SVN文件泄露源码19:54
- 泄露特征:SVN会生成.svn目录,其中entries文件包含代码版本信息
- 检测方法:
- 访问/.svn/entries文件
- 使用SvnHack工具(https://github.com/callmefeifei/SvnHack)
- 利用限制:与git类似,只能恢复被SVN版本控制的文件,新增未提交文件无法获取
- DS_Store文件泄露目录结构26:06
- 文件作用:Mac系统自动生成的目录结构描述文件,记录文件夹显示属性
- 泄露风险:
- 暴露网站目录结构(如案例中的/6vip/.DS_Store)
- 可能包含敏感文件名信息
- 利用工具:
- ds_store_exp(https://github.com/lijiejie/ds_store_exp)
- 使用命令:python ds_store_exp.py http://target/.DS_Store
- 恢复限制:仅能获取目录结构,无法直接得到源代码文件内容
二、源码识别与获取方法
32:25
1. 常规源码获取流程
- 识别流程:通过程序特征识别源码类型后,可直接访问官网下载
- 适用场景:适用于官方持续维护且资源公开的程序源码
2. 三类常见问题及解决方案
1)第一类问题:识别但无法下载
- 典型表现:能识别程序名称但无法获取源码
- 主要原因:
- 官方停止维护(跑路/关站)
- 使用群体小众导致资源未共享
- 源码收费导致获取受限
- 案例说明:如开发者关闭官网后,既无官方渠道也无第三方分享渠道
2)第二类问题:完全无法识别
- 解决途径:
- 利用管理员操作疏漏(如未删除开发配置文件)
- 通过程序员社区资源逆向追踪
- 社区资源:
- 国际平台:GitHub
- 国内平台:Gitee、开源中国(OSChina)
- 特点:这些平台聚集了大量程序开发者,常会保留个人项目源码和开发痕迹
3)第三类问题:特殊行业源码获取
- 行业特性:
- 黑产类程序需求特殊,常规源码无法满足
- 多为定制开发或二次修改版本
- 获取难点:
- 源码不会公开流传
- 传统指纹识别方法失效
- 使用群体高度垂直
- 典型场景:如赌博网站、钓鱼系统等非法程序的专用源码
3. 关键资源平台
- 主流社区:
- GitHub:国际最大开发者平台
- Gitee:国内主流代码托管
- 开源中国:开发者交流社区
- 搜索技巧:
- 通过作者信息追踪
- 利用程序关键词检索
- 关注开发者个人空间/博客
- 注意事项:CSDN等技术论坛因用户群体混杂,专业度低于上述纯技术社区
三、违法类源码
37:52
1. 互站网
39:55
- 主要用途:互站网曾是最大的对口资源站,主要用于搭建各类网站和系统
- 现状:目前已经下架很多内容,但仍有一些其他网站在提供类似服务
- 整顿情况:经过整顿后,平台上的违规内容已大幅减少
2. 游戏
40:24
- 资源特点:提供各类珍藏游戏资源,包括手游和棋牌类游戏
- 合规性:部分棋牌类游戏存在擦边球现象
- 正规性对比:正规游戏不涉及金币交易,而违规游戏常涉及金钱交易
- 运营动机:搭建者通常以盈利为目的,而非单纯娱乐
3. 金融
41:02
- 资源类型:包括区块链、货币网等金融相关资源
- 两类用途:
- 正规用途:如官方货币网等
- 非法用途:如传销币、假币等
- 使用特点:非法活动常利用这些资源进行搭建
4. 股票配资
41:52
- 行业特点:属于灰色行业范畴
- 正规机构:大型股票机构有专人维护系统,不会使用廉价搭建方案
- 使用群体:多为小型或非法经营者使用
5. 支付
42:20
- 监管重点:当前重点打击跑分等非法支付行为
- 关联性:支付系统常与非法活动挂钩
- 变化趋势:相比过去,违规支付系统已大幅减少
6. 任务大厅
43:05
- 任务类型:包含正常任务和灰色产业任务
- 平台现状:虽然内容有所减少,但仍存在违规任务
- 识别特征:任务性质本身就能反映平台的不规范性
7. 交友
43:41
- 常见形式:如同城交友APP等
- 运营模式:常采用诱导充值等不当手段
- 社会影响:这类平台在短视频等渠道广泛传播,影响较大
8. 应用案例
44:16
1)例题:源码下载
44:18
- 源码收集方法
- 搜索渠道:应使用谷歌等国外搜索引擎进行搜索,百度等国内搜索引擎难以找到相关资源
- 关键字技巧:需要尝试多种相关关键字组合,如"棋牌源码"、"约会交友源码"等
- 资源特性:这类源码网站具有不稳定性,经常"做一段时间关一段时间"
- 常见源码类型
- 棋牌类:包括赌博类网站源码
- 交易所类:如TB等交易平台源码
- 4S类:具体内容未明确展示
- 约会交友类:部分涉及灰色产业
- 区块链相关:包含各类区块链项目源码
- 行业特征分析
- 盈利模式:主要应用于灰色产业,因为"正常业务难以回本"
- 法律风险:明确指出这些源码"全部都是鬼东西"、“都是违法类的”
- 市场现状:存在大量同类网站,“不是一两个网站在搞这事情”
- 资源识别技巧
- 加载文件分析:可通过查看网站加载的文件来识别源码类型
- 网站特征:提供特定类型源码的网站通常与相关行业有明显关联
- 内容验证:需要区分正常业务源码和违法业务源码
- 注意事项
- 法律警示:明确提醒"只要你动了,你这个不是个正规介入,那就是违法的"
- 商业可行性:指出正常业务"这钱都不知道怎么先挣回来"
- 资源可靠性:强调源码资源需要"靠自己平常收集",不能依赖他人提供
2)例题:信息打点
48:40
- 例题:加载文件49:14
- 文件选取原则
- 关键文件类型:优先选择脚本文件(如.js文件)和程序自带的固定文件,避免选择图片等后期可上传的非固定文件。
- 特征文件标准:选择具有独特命名、不常见且能体现程序特征的脚本文件,如"jquery-2.2.4.js"这类框架文件。
- 排除原则:不选择login等常见命名的文件,这类文件搜索结果过多难以筛选。
- 搜索验证方法
- 路径验证:通过访问文件路径验证文件是否存在,如访问"/login/upload.gsp"测试文件真实性。
- 结果筛选:在代码托管平台搜索时,重点关注代码内容和项目说明两个主要结果区域。
- 冷门策略:优先搜索冷门特征文件,如完整路径或特殊命名的文件(如"zblogpp")。
- 文件选取原则
- 例题:web应用信息打点55:54
- 源码特征识别
- 开发文件泄露:注意package.json等开发配置文件,可能包含程序信息和依赖关系。
- 版权文件分析:查找包含程序版本、作者信息的文件(如thinkphp的版权文件)。
- 邮箱信息利用:通过扫描获取开发者邮箱(如QQ邮箱)作为搜索关键词定位源码。
- 实战搜索技巧
- 域名对应:确保搜索的文件路径与目标网站域名匹配,避免误搜第三方资源。
- 多文件验证:当首个特征文件搜索结果不理想时,尝试搜索其他目录下的特征文件。
- 结构对比:下载疑似源码后,通过比对文件目录结构和可访问路径验证匹配度。
- 特殊案例处理
- 无后缀文件:避免搜索无后缀名的参数型路径(如"/api/getUserInfo"),这类路径通常不是实际文件。
- 路由型网站:对Java等路由型网站,不要简单通过URL路径推断文件结构。
- 隐藏信息网站:当网站隐藏了明显标识时,通过js文件特征反向定位程序类型。
- 源码特征识别
四、其他行业源码
01:13:56
1. 例题:找网站源码
01:14:11
- APP与网站关系:演示的APP实际上是网站封装,很多APP都是基于网站技术开发
- 源码获取途径:
- APP方向:通过APK反编译获取源码
- 网站方向:需要采用其他方法获取源码
- 黑产行业特点:
- 小中型黑产:资金有限,通常购买现成源码(价格几百到几千元)
- 大型黑产:有专门研发团队,源码不会外流
- 查找方法:
- 扫描目标目录和文件
- 根据行业特征搜索(如擦边球行业在特定网站查找)
- 在源码发布平台查找对应行业的源码
- 注意事项:
- 该方法主要适用于小中型黑产网站
- 大型商业网站(如百度、QQ)的源码不会通过此方式获取
- 需要根据实际情况判断方法适用性
五、内容总结
01:19:24
- 查询平台分类:
- 免费平台:如爱奇茶
- 收费平台:如小蓝本(可1元体验7天)
- 域名信息查询:
- 单域名查询
- 多域名查询
- 使用平台:企查查、阿里云等
- 架构识别:
- 涉及5个关键要素
- 使用特定平台进行识别
- 源码获取方法:
- 开源程序:通过指纹识别找到CMS后官网下载
- 闭源程序:
- 泄露方案:Git、SVN、备份文件等
- 信息搜索:
- 文件搜索(js文件、数字文件名等)
- 个人信息搜索(QQ邮箱、作者名等)
- 搜索平台:GitHub、OS China等代码资源站点
六、下次课安排
01:34:59
- 前端源码分析:JS源码解析
- 其他知识点:
- 中间件信息收集
- 数据库信息收集
- 注意事项:
- 源码审计需要扎实的代码能力
- 漏洞发现依赖个人审计水平
- 需要长期积累和实践
七、知识小结
| 知识点 | 核心内容 | 关键操作/技术要点 | 应用场景 |
| 域名信息收集 | 单域名与子域名查询技术 | 企查查/爱企查平台使用、阿里云反查 | Web资产发现 |
| Web架构识别 | CMS指纹识别技术 | 在线识别平台使用、CMSmap工具 | 内网渗透测试 |
| 源码获取方法 | 开源与闭源码获取策略 | Git/SVN泄露利用、DS_Store恢复 | 安全测试前置 |
| 后端源码获取 | 特征文件定位技术 | JS文件特征分析、GitHub关键字搜索 | CMS漏洞挖掘 |
| 黑产行业源码 | 特殊渠道获取方式 | 互站网等平台检索、行业特征匹配 | 专项渗透测试 |
| 信息泄露利用 | 备份文件扫描技术 | .git/.svn目录探测、压缩包爆破 | 敏感数据获取 |
| 开发特征追踪 | 开发者信息收集 | 邮箱/作者名搜索、注释信息提取 | 社工信息收集 |
| 前端源码分析 | JS框架逆向技术 | Vue/React源码提取、API接口分析 | 前端漏洞挖掘 |