السلام عليكم
طبعاااااااااا المكتشف::: العندليب
الثغرة من نووووع xss
برضة الترقيع نقلته من العندليب
ابدأأأأأأأأأ
الثغره موجوده في ثلاثة أزرار وهي زر تنسيق القصيده الشعريه وزر إدراج الـ RealPlayer وز الـ FLASH .
والثغره من نوع Cross Site Scripting وذكرت لكم سابقاً أن النوع من هذه الثغرات إذا تحقق سيتم سرقة الكوكيز من جهاز الضحيه وارسالها الى موقع اخر. حينها سيبدأ الهكر باخذ هذه الكوكيز واستخدامها بجهازه والدخول على منتداك من خلالها .
سأذكر لكم طريقة التحقق من وجود إحدى هذه الثغرات بمنتداك وهي ثغرة الفلاش لأن الكل يستخدم الصندوق السحري و الماسي
1- قم بفتح موضوع جديد.
2- أدخل أي عنوان للموضوع.
3- في نص الموضوع أدخل الكووود التالي :
كود PHP:
[
كود:
flash=https://www.xxxxxx.com/test.swf]onmouseover='alert(document.cookie);'[/flash]
4- إضغط زر مشاهده قبل الأرسال .
5- الان سيظهر لك معاينه للموضوع قبل الارسال وسيظهر فيها صورة الفلاش . قم بتحريك الفأره على صورة الفلاش وشاهد النتيجه . سيظهر لك مربع تنبيه مكتوب بداخله محتويات الكوكيز الخاصه بك .
طيب الحين طريقة ترقيع الثغرة
هذه الطريقه ولا تزعلون
1- افتح ملف functions_bbcodeparse.php
2- إبحث عن :
كود PHP:
كود:
$bbcodes['custom']['recurse']['highlight'][0] = array('replace_html' => "<span class=\"highlight\">\\7</span>");
3- بعدها قم بإضافة الأسطر التاليه :
كود PHP:
كود
كود:
// For Magic-Box Added By AL3NDALEEB
$bbcodes['custom']['find']['[poem'] = '#\[poe[m](\s|"|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/poe[m]\]#esiU';
$bbcodes['custom']['replace']['[poem'] = "handle_bbcode_normal('\\4', '\\2', '', 'poem')";
$bbcodes['custom']['recurse']['poem'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[frame='] = '#\[frame=("|"|\'|)([0-9]+)[ ]+([0-9]+)[ ]*\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/frame\]#esiU';
$bbcodes['custom']['replace']['[frame='] = "handle_bbcode_normal('\\5', '\\2', '\\3', 'frame')";
$bbcodes['custom']['recurse']['frame'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[grade='] = '#\[grade("|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/grade\]#esiU';
$bbcodes['custom']['replace']['[grade='] = "handle_bbcode_normal('\\4', '\\2', '', 'grade')";
$bbcodes['custom']['recurse']['grade'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[hr]'] = '#\[hr\]#esiU';
$bbcodes['custom']['replace']['[hr]'] = "handle_bbcode_normal('hr', '', '', 'hr')";
$bbcodes['custom']['recurse']['hr'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[line]'] = '#\[line\]#esiU';
$bbcodes['custom']['replace']['[line]'] = "handle_bbcode_normal('line', '', '', 'hr')";
$bbcodes['custom']['recurse']['line'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\](width=)\\1([0-9]+)\\1[ ]+(height=)\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\4','\\6', 'flash')";
$bbcodes['custom']['recurse']['flash'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\](height=)\\1([0-9]+)\\1[ ]+(width=)\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\6','\\4', 'flash')";
$bbcodes['custom']['recurse']['flash'][1] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\]([w|W][i|I][d|D][t|T][h|H][=])\\1([0-9]+)\\1[ ]+([h|H][e|E][i|I][g|G][h|H][t|T][=])\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\4','\\6', 'flash')";
$bbcodes['custom']['recurse']['flash'][0] = array('handler' => 'handle_bbcode_normal');
//
4- قم بالبحث عن :
كود PHP:
كود:
5- قبلها أضف الأسطر التاليه :
كود PHP:
كود:
كود:
// For Magic-Box Added By AL3NDALEEB
function handle_bbcode_normal($message, $param1 = '', $param2 = '', $type = '' )
{
// remove empty codes
if (trim($message) == '' || $type == '')
{
return '';
}
// remove unnecessary escaped quotes
$message = strip_smilies(str_replace('\\"', '"', $message));
if($type == 'poem'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
// remove smilies from param
$param1 = strip_smilies($param1);
$html = '<div tag="'.$param1.'" style="display:none">'.$message.'</div><script>doPoem(0)</script>';
}elseif($type == 'frame'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
$param2 = str_replace('\\"', '"', $param2);
$param2 = str_replace('"', '"', $param2);
// remove smilies from param
$param1 = strip_smilies($param1);
$param2 = strip_smilies($param2);
$html = '<div id="myframe" tag="'.$param1.'|'.$param2.'" style="display:none">'.$message.'</div><script>drawFrame()</script>';
}elseif($type == 'hr'){
$html = '<hr noshade size=1>';
}elseif($type == 'grade'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
// remove smilies from param
$param1 = strip_smilies($param1);
$html = '<div id="mygradient" tag="'.$param1.'" style="display:none">'.$message.'</div><script>drawGradient()</script>';
}elseif($type == 'flash'){
if (!preg_match('#^[a-z]+://#si', $message)){
return '';
}
$param1 = intval($param1);
$param2 = intval($param2);
$html = '<embed src="'.$message.'" width="'.$param1.'" height="'.$param2.'" quality=high loop=true menu=false TYPE="application/x-shockwave-flash"</embed>';
}
return $html;
}
وبعدين
6- قم بحفظ الملف ورفعه .
بعد التركيب يجب أن تدخل لوحة التحكم وتدخل على إدارة الـ BBCODE وتمسح رمز الـ FLASH حتى لا يبقى لثغرة الفلاش
منقول للفائده