30 lines
1.2 KiB
PHP
30 lines
1.2 KiB
PHP
<?php
|
|
header("Content-Type: text/plain");
|
|
$wevia = @file_get_contents("/var/www/html/wevia.html");
|
|
$pos = 0;
|
|
$big = null; $start_abs = 0;
|
|
while (($m = strpos($wevia, "<script>", $pos)) !== false) {
|
|
$end = strpos($wevia, "</script>", $m);
|
|
if ($end === false) break;
|
|
$content = substr($wevia, $m + 8, $end - $m - 8);
|
|
if (strlen($content) > 20000) {
|
|
$big = $content;
|
|
$start_abs = substr_count(substr($wevia, 0, $m + 8), "\n") + 1;
|
|
break;
|
|
}
|
|
$pos = $end + 9;
|
|
}
|
|
|
|
$tmp = "/tmp/wevia-big.js";
|
|
file_put_contents($tmp, $big);
|
|
echo "Size: " . strlen($big) . "B\n";
|
|
echo "Start abs line in HTML: $start_abs\n\n";
|
|
|
|
// Try to parse with node
|
|
$parse = @shell_exec("node --check $tmp 2>&1");
|
|
echo "=== node --check ===\n$parse\n\n";
|
|
|
|
// Also try to execute just to see if RUNTIME regex error appears
|
|
$exec = @shell_exec("timeout 3 node -e \"const fs=require('fs'); const src=fs.readFileSync('$tmp','utf8'); try { new Function(src); console.log('new Function OK'); } catch(e) { console.log('new Function ERROR:', e.message); console.log(e.stack ? e.stack.split(String.fromCharCode(10))[0] : ''); }\" 2>&1");
|
|
echo "=== new Function test ===\n$exec\n";
|