المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ثغرات في الصنودق السحري والماسي


VIP
07-10-2005, 04:00 PM
السلام عليكم

طبعاااااااااا المكتشف::: العندليب

الثغرة من نووووع xss

برضة الترقيع نقلته من العندليب

ابدأأأأأأأأأ

الثغره موجوده في ثلاثة أزرار وهي زر تنسيق القصيده الشعريه وزر إدراج الـ RealPlayer وز الـ FLASH .
والثغره من نوع Cross Site Scripting وذكرت لكم سابقاً أن النوع من هذه الثغرات إذا تحقق سيتم سرقة الكوكيز من جهاز الضحيه وارسالها الى موقع اخر. حينها سيبدأ الهكر باخذ هذه الكوكيز واستخدامها بجهازه والدخول على منتداك من خلالها .

سأذكر لكم طريقة التحقق من وجود إحدى هذه الثغرات بمنتداك وهي ثغرة الفلاش لأن الكل يستخدم الصندوق السحري و الماسي
1- قم بفتح موضوع جديد.
2- أدخل أي عنوان للموضوع.
3- في نص الموضوع أدخل الكووود التالي :

كود PHP:

onmouseover='alert(document.cookie);'

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|&quot;|"|\'|)(.*)\\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=(&quot;|"|\'|)([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(&quot;|"|\'|)(.*)\\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=(&quot;|"|\'|)(.*)\\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=(&quot;|"|\'|)(.*)\\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=(&quot;|"|\'|)(.*)\\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('"', '&quot;', $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('"', '&quot;', $param1);
$param2 = str_replace('\\"', '"', $param2);
$param2 = str_replace('"', '&quot;', $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('"', '&quot;', $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 حتى لا يبقى لثغرة الفلاش

منقول للفائده