业务漏洞挖掘笔记
字数 1229 2025-08-10 08:28:45
业务漏洞挖掘系统化方法论
一、资产收集与管理
1.1 资产范围确定
- 核心思想:分析资产特征,全网寻找符合特征的资产
- 关键信息收集项:
- 域名/子域名
- 网页内容特征
- ICP备案信息
- WHOIS联系信息
- SSL/TLS证书信息
- DNS解析信息
- WHOIS-NAMESERVER信息
- IP及相关端口服务信息
- C段/B段IP段
- 组织信息(招股书、联系方式等)
- 人员信息(管理员、员工等)
- 客户端应用(APP/小程序等)
1.2 资产收集工具
- 推荐使用自研工具实现自动化收集
- 子域名爆破建议使用云自建DNS服务
- 扫描爆破使用廉价VPS(易被封)
1.3 资产管理
- 对收集的资产进行分类整理
- 建立可视化管理系统
- 实现快速定位风险点能力
- 组件0day快速定位
- 弱密码爆破目标筛选
- 资产变化监控
二、资产监控
2.1 监控必要性
- 业务持续变化带来新漏洞机会
- 新业务/更新业务漏洞概率更高
2.2 监控对象
- Web业务变化
- IP和端口变化
- 客户端软件更新
2.3 实现方式
- 必须实现自动化/半自动化
- 租用多台VPS实现7×24监控
三、业务漏洞挖掘
3.1 业务面临风险
- 数据被窃取
- 权限被控制
- 业务中断
- 机器权限
- 功能权限
- 应用服务权限
- 数据泄露
3.2 漏洞本质
- 用户输入的非法字符串被不安全处理
- 导致操作系统/编程语言/数据库/浏览器执行恶意指令
3.3 常见漏洞类型及原理
3.3.1 XSS漏洞
<?
echo $_GET['xss']; // 直接输出未过滤的用户输入
?>
3.3.2 SQL注入
$id=$_GET["id"];
$result = mysqli_query($link,"SELECT * FROM users where user_id=".$id);
3.3.3 SSRF漏洞
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']); // 直接使用用户提供的URL
3.3.4 命令注入
$target = $_REQUEST['cmd'];
$cmd = shell_exec('ls '.$target); // 拼接用户输入到系统命令
3.3.5 代码注入
- 可能出现在PHP/NodeJS/JSP/ASPX等语言中
- 用户输入被当作代码执行
3.3.6 其他漏洞
- 文件读取
- XXE(XML注入)
- 信息泄露
- 上传漏洞
3.4 漏洞检测方法
3.4.1 基本检测流程
- 修改请求参数值
- 重放请求
- 对比响应差异
3.4.2 差异判断依据
- 响应内容变化
- 响应时间变化
- Dnslog/Httplog反馈
- 浏览器DOM渲染结果
- 浏览器Console输出
3.4.3 自动化检测思路
- 遍历所有参数
- 追加单双引号测试
- 对异常参数追加payload测试
- 命令注入payload
- SSRF payload
- 代码注入payload
- SQL注入payload
- 对HTML响应进行DOM XSS检测
3.5 浏览器辅助工具
3.5.1 远程调试
- 启动参数:
--remote-debugging-port=9222 - 实现功能:
- 自动表单填写
- 自动页面点击
- 减少重复工作
3.5.2 自动化工具
- 规范化测试流程
- 减少手工操作
- 自动参数修改
- 自动重放
- 自动结果分析
四、系统化工作流程
- 目标获取
- 资产范围确定
- 资产收集
- 资产管理
- 资产分类
- 业务功能理解
- 业务漏洞测试
- 逻辑漏洞测试
- 报告提交
五、持续改进方向
- 流程规范化
- 工具自动化
- 监控持续化
- 知识系统化
通过系统化的资产管理和自动化的测试工具,可以显著提高业务漏洞挖掘的效率和成功率,实现"躺赚"式的漏洞挖掘。