PDA

View Full Version : فرستادن متغیر



barnamenevis2016
یک شنبه 24 خرداد 1394, 20:32 عصر
سلام..من داشتم یک کتاب در مورد امنیت php می خوندم...بعد در اوایل ساده می گفت که مثلا هکر می تونه یک متغیر رو نسبت دهی بکنه و عملی مخرب انجام بده...اینطور مثال زده بود


$pass = strtolower(md5($_POST['pass']));
$$pass = "de1b2a7baf7850243db71c4abd4e5a39";
if($pass == $$pass){
$admin= 1;
}
if($admin==1)
{
echo "Welcome to the system";
}else{
echo "Enter Correct Password";
}


بعد می گفت هکر می تونه با معین کردن و فرستادن متغیر admin و با مقدار یک....به سیستم خودش رو مدیر جا بزنه....ولی من موندم که چطور هکر می تونه متغیر admin رو نسبت دهی کنه و مقدار یک بده، واسه سرور...
توی کتاب نوشته بود...هکر کافی کد زیر رو در فرم ورود به سایت قرار بده....
<input type=hidden name=admin value=1>




در این صورت اگر هکر فرم رو بفرسته و submit کنه مقدار متغیر admin معین و برابر یک خواهد بود برای سرور...ولی چطور...مگه می شه؟
و چطور اصلا می شه در میان فرم متغیری رو هم فرستاد سمت سرور؟

Pedram77
یک شنبه 24 خرداد 1394, 20:57 عصر
منم کتابشو خوندم همینم امتحان کردم ولی جواب نگرفتم فک کنم نویسنده اومده ی مثال بزنه توش مونده :بامزه:

hsgpro
یک شنبه 24 خرداد 1394, 21:23 عصر
سلام
این کار اصلاً ممکن نیست چون ارسال متغیر با Form در متغیر سراسری POST قرار میگیره نه متغیر های محلی (local) شما.
احتمالاً نویسنده اطلاعات کافی در این موضوع نداشته یا نتونسته منظور درستش رو خوب برسونه.

pbm_soy
دوشنبه 25 خرداد 1394, 02:45 صبح
بله امکان پذیر نیست! شاید منظور نویسنده چیز دیگری باشد!

درصورت امکان لینک دانلود کتاب را بذارید تا ماهم استفاده کنیم

barnamenevis2016
دوشنبه 25 خرداد 1394, 11:24 صبح
لینک دانلود کتاب:
http://ketabesabz.com/book/18495/دانلود-کتاب-آموزش-امنیت-در-PHP
جالب نویسنده دو سه بار هم در صفحات بعدی به این نوع امکان نفوذ هکر ها اشاره می کنه!

2undercover
دوشنبه 25 خرداد 1394, 12:20 عصر
اگر Register Globals در تنظیمات فعال باشه این اتفاق می افته. که البته بعد از یک مدتی این قابلیت که به صورت پیش فرض فعال بود به دلایل امنیتی به صورت پیش فرض غیرفعال شد و در نسخه 5.3 منسوخ شد و در نسخه 5.4 هم کلا حذف شد.

PHP Register Globals (http://php.net/manual/en/security.globals.php)