支持一键生成多种PHP恶搞脚本模板,包括但不限于:
内置多层混淆策略,满足不同场景下的“趣味性”与“隐蔽性”需求:
eval()拆为create_function() + 动态拼接提供隔离式运行环境,支持以下测试场景:
专为“反调试”场景设计的辅助工具集:
该脚本通过递归创建/删除/重命名操作,模拟高并发文件系统扰动场景,用于测试服务器磁盘监控与自动恢复机制。
<?php
// 随机创建临时文件并记录路径
$paths = [];
for ($i = 0; $i < 50; $i++) {
$path = sys_get_temp_dir() . '/chaos_' . bin2hex(random_bytes(4)) . '.tmp';
file_put_contents($path, str_repeat('A', mt_rand(1024, 102400)));
$paths[] = $path;
}
// 随机删除部分文件
shuffle($paths);
for ($i = 0; $i < 25; $i++) {
@unlink($paths[$i]);
}
// 随机重命名剩余文件
foreach ($paths as $i => $path) {
if (file_exists($path)) {
$newName = sys_get_temp_dir() . '/renamed_' . bin2hex(random_bytes(4)) . '.dat';
rename($path, $newName);
}
}
?>适用场景:验证CI/CD流水线中“文件残留”问题的自动清理策略;模拟黑客攻击中的“文件洪流”战术。
构造伪造session_id的HTTP请求,测试目标系统对会话固定攻击(Session Fixation)与劫持(Hijacking)的防御能力。
<?php
// 伪造会话ID(长度符合PHP默认哈希规则)
$fakeSid = md5(uniqid() . microtime() . mt_rand());
// 构造带伪造SID的Cookie头
$opts = [
'http' => [
'method' => 'GET',
'header' => "Cookie: PHPSESSID={$fakeSid}\r\n",
'ignore_errors' => true
]
];
$context = stream_context_create($opts);
// 访问目标URL(需替换为测试目标)
$result = file_get_contents('http://localhost/test.php', false, $context);
// 输出响应状态码与部分内容
echo "Status: " . http_response_code($http_response_header) . "\n";
echo "Content-Length: " . strlen($result) . "\n";
echo substr($result, 0, 200) . "...\n";
?>关键注意点:目标服务器必须允许自定义session_id;若使用Nginx+PHP-FPM,需确认fastcgi_param PHP_VALUE中未禁用session.use_strict_mode。
通过循环引用与大数组构造,快速触发PHP内存限制(memory_limit),用于压力测试与内存泄漏检测。
<?php
// 递归数组构造器(深度可控)
function buildNestedArray($depth, $width = 100) {
if ($depth <= 0) return [];
return array_fill(0, $width, buildNestedArray($depth - 1, $width));
}
// 生成3层深度 × 500宽度 × 500深度 × 500宽度 × 500深度 × 500宽度
// 实际内存占用 ≈ 500^3 × 8字节 ≈ 1TB(理论值,实际受PHP内存限制影响)
try {
$bomb = buildNestedArray(3, 500);
echo "Memory usage: " . memory_get_peak_usage(true) / 1024 / 1024 . " MB\n";
} catch (Throwable $e) {
echo "Caught: " . $e->getMessage() . "\n";
}
?>安全提示:实际运行前请确认环境支持足够内存;建议在Docker容器中指定--memory=512m运行以避免系统崩溃。
构造非标准HTTP请求,验证Web服务器与框架的异常处理能力,尤其适用于WAF绕过测试。
<?php
$sock = stream_socket_client("tcp://localhost:80", $errno, $errstr, 5);
if (!$sock) die("Connection failed: $errstr ($errno)\n");
// 构造不完整请求头(缺少Host头)
$request = "POST /api/test HTTP/1.1\r\n";
$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request .= "Content-Length: 128\r\n"; // 声明长度但实际发送不足
$request .= "\r\n";
$request .= str_repeat("A", 100); // 实际仅发送100字节
fwrite($sock, $request);
$response = stream_get_contents($sock);
fclose($sock);
echo "Response:\n" . $response . "\n";
?>典型响应行为:
register_shutdown_function()注册清理钩子,在脚本结束时移除痕迹debug_backtrace()检测调用栈深度异常(调试器会增加栈帧)ini_set('display_errors', 0)防止错误信息泄露调试线索pcntl_fork()创建子进程执行核心逻辑,父进程监控并退出eval())进行包装,检测调用者上下文是否含调试特征| 工具名称 | 功能描述 | 适用场景 |
|---|---|---|
| php-burp-extension | 集成Burp Suite的PHP脚本生成器 | Web渗透测试中快速构造恶意payload |
| phptroller | PHP运行时行为监控器 | 动态检测脚本是否被调试器附加 |
| obfuscator.io | 在线PHP代码混淆服务 | 生成混淆后脚本用于测试反调试效果 |
| gdb-php | GDB插件,支持PHP符号解析 | 底层调试场景中分析Zend引擎状态 |
| phpdbg-sandbox | 隔离式phpdbg沙箱环境 | 安全测试中模拟调试器攻击路径 |
根据《中华人民共和国网络安全法》第二十七条,任何个人不得从事危害网络安全的活动。但本平台所有脚本均用于:
① 教学演示;
② 安全测试(需获得目标系统书面授权);
③ 开发者能力提升训练。未授权使用导致的后果由使用者自行承担。
合法测试需满足:
① 与目标方签订《渗透测试授权书》;
② 明确测试范围、时间、方式;
③ 测试后提交完整报告并删除所有测试数据;
④ 遵守《网络安全等级保护条例》相关要求。
绝对禁止!所有脚本均未经生产环境验证,可能引发:
① 服务中断;
② 数据丢失;
③ 安全漏洞暴露;
④ 法律风险。请仅在隔离测试环境中使用。
建议采用以下组合策略:
① 使用多层混淆(字符串编码+控制流扁平化+无用指令注入);
② 避免使用敏感函数名(如eval、system、exec);
③ 混淆文件路径与变量名;
④ 通过auto_prepend_file自动加载,避免显式包含;
⑤ 对关键逻辑进行加密(如使用ionCube加密后动态解密)。
可检测:
① Web应用防火墙(WAF)规则覆盖盲区;
② 输入验证逻辑的边界处理能力;
③ 日志审计机制的完整性;
④ 异常处理机制的健壮性;
⑤ 会话管理策略的漏洞(如固定攻击、会话固定)。
注意:检测结果仅用于加固系统,不得用于非法用途。