ByPass OpenBasedir / Forbidden / SafeMode eSpecially iN DrectAdmin

السلام عليكم ورحمة الله وبركـاته ddd

أخبـاركم أعضـاء الحماية للابد ؟ :cool:

موضوعنا اليوم عن OpenBaseDir رح نتعرف عليه ورح نتخطاه ddd

اول شي كيف يتم تحديد الـ Open Base Dir ومين المسول عن وضعه ؟!

المسول بالشكل الاساسي هو php

يتم تحديده من خلال php.ini مثله مثل الـ Safe Mode او اي Function اخر !

طيب ايش وظيفته ؟
وظيفته بالشكل الرئيسي هو منع المستخدمين من تجاوز هذه المسارات اللي توضعه فيه كـ Value !
يعني مثلا كان الـ Open Base dir هو

/tmp

الكل بيعرف انه هذا المجلد هو مصرح لاي واحد بالدخول عليه … لكن هنا ملفات php ما تقدر تدخل عليه لانها صارت محظورة !

وين بنستخدمه الخيار هذا ؟
الاغلب يستخدم في السيرفر اللي تكون الامتيازات فيه نو بادي أو اباتشي حتى لا يتم التجاوز
مثلا الان عنا سيرفر صلاحيته Nobody الكل بيعرف انه اي واحد ممكن يتنقل بين اليوزرات بالشكل الطبيعي بالشل
مثلا كان لدينا المسـار

/home/sec4ever/public_html

محظور للمستخدمين يعني موجود في OpenBaseDir
والصلاحية نو بادي … لما تحاول تتنقل للمسار علطول بيقولك
Can’t Open Folder / Permission Denied/ Access Is Denied
وغيرهم من الرسائل وممكن يجيك تصريح بجانب المجلد بالشكل “u--------”

تمام … الان نيجي لطرق التخطي
مثلا صادقنا سيرفر رفعنا ملف php شل يعني وقالك الصلاحية نو بادي و السيف مود اون
حاولنا بكل الطرق نحصل على Safe Mode OFF لكن على الفاضي وفيه دوال كتير … لكن قدرنا نشغل بيرل وكانت الصلاحية في البيرل = يوزر
هذا كله يعني

PHP … Nobody Privilege
CGI … USER Privilege

الان وجدنا دالة Readfile غير معطلة !
وحطيناها بملف php بسيط


<?php
readfile("/etc/passwd");
?>

علطول هتيجيك الرسالة هيدا

الان وبشكل مباشر رح تعمل هالطريقة القديمة التاريخية ddd

[```

http://ip/~username/fullpath/x.php


 
طبعا هالطريقة قديمة جدا ~ ويمكن انتهت في بعض السيرفرات تمنع 
/~username
 
طيب .. خلينا نستفيد من اللي بايدينا .. لو حولنا
الان احنا بدنا نقرا الملف وعندنا نو بادي لكن ما نقدر نقراه بسبب الـ
Open Base Dir
 
احنا مش حنقرا /etc/passwd
لا احنا عاوزين نقرا مثلا ملف معين لموقع اخر بما انه صلاحية php نو بادي يعني :d
اوك اول شي روح ارجع للـ CGI
اللي صلاحيته يوزر 
وسوي الامر

/usr/bin/php -d php.ini


وانت اكتب في php.ini

Safe_Mode=OFF
open_basedir = NONE


 
هالطريقة مكتشفة من فترة لكن ما رح تظبط على كل السيرفرات لذلك رح نستبعدها شوي
ونرجع للكوماند لاين ونرجع للشي الاساسي اللي هو ملف php
ورح نطبق الامر
 

php z1d.php


 
طبغا محتوى z1d.php

```php

<?php
# Sec4ever.com
readfile("/home/user/domain/xxx.com/public_html/b0x.php");
?>

ورح يقرا 100% !!
وفي فيديو للتوضيح أكثر … :slight_smile:
http://www.multiupload.com/E8DIYQ21CC

طبعا هلآ لو كان السيرفر فيه فوربدن او مافيه … خلاص تم التخطي والقرائة !! ddd

اهداء للجميع :smiley:

[b]بالعربية php يشتغل على صلاحية apache و perl على صلاحية user
الي فهمتوا انك عندما شغلت php من perl إشتغل في صلاحية user
يعني صلاحية يوزر يستطيع قرأت ملفات مواقع الاخرى

اظن انك لو قرأت مباشرة من بيرل أفضل… او لا تستطيع
وشكرا لك
[/b]

شكراا لك زيد

عجبني تفكيرك

الي فهمتوا انك عندما شغلت php من perl إشتغل في صلاحية user

لا خطا اشتغل بصلاحية نو بادي :slight_smile:
والدليل انه قرا ملف … اليوزر ما بقدر يقراه اللي هو ملف الكونفك لموقع اخر على السيرفر :d
بس يمكن السيرفر فيه سماحية للمسارات لكن الملف اشتغل بصلاحية اباتشي و الدليل لو حطيت ملف php فيه كود

<?php
system(“id”);
?>

ونفذته من البيرل … رح يقولك الدالة معطلة :slight_smile: هذا يعني انه صلاحيتك اباتشي لو كانت يوزر كان بيقولك الصلاحية :d
يعني حسب الصلاحية المعطاة للملف “.php” اللي هي اباتشي :d

يسلمووو زيدو شرح واضح

[RIGHT]


<?php
system("id");
?>             

هذي لو كانت معطلة لن تشتغل حتى ولو كان صلاحية روت لانها تابعة لإعدادات php
و اظن انك قرأت بصلاحية يوزر لان برنامج perl في هذه الحالة نرى انه يعمل تحت صلاحية يوزر كما رأينا عندما نفذت امر
id أعطاك صلاحية يوزر

و انت شغلت ملف php من perl يعني نفهم انوا إشتغل تحت صلاحية يوزر
جرب أعمل ملف بيرل لقرأة عادي
راني رفعتوا على شيل تبعك جرب

#!/usr/bin/perl -w

 open (MYFILE, '/home/w43l/domains/w43l.com/public_html/blog/wp-config.php');
 while (<MYFILE>) {
     chomp;
     print "$_
";
 }
 close (MYFILE); 


يقراه ملف عادي يعني تقدر تقرأ من صلاحية يوزر

سيرفر مخربط

[/RIGHT]

اهلا حج Devil منور الموضوع :slight_smile:

اما بالنسبة لـك نسيم … صحيح السيرفر ملخبط او بالاصح مصرح 755 لكل المجلدات علشان كده تقدر تقرأ اي شي … هلآ رح امنع الصلاحية لليوزر واصرحها للنو بادي … كمان شوي بنزلك فيديو :d ثواني فقط :blush:

فعلا الـصلاحية كانت يوزر … جربت اقرا ملف ما يقدر يقراه سوى النو بادي :d
وكانت النتيجة Permission Denied لكن تخطي الـ Open Base Dir كان صحيح :stuck_out_tongue:

Litespeed permission denied :S

تفكيرك دوما اخى زيد اتمنى لك كامل التوفيق.

[b]يعطيك العافية زيدوهـ

بس كلام الاخ Lagripe-Dz

صحيح

وبالتوفيق لـ افكارك …[/b]