فى البداية لا اود ان يتجه الحديث فى الموضوع الى موضوع حرب بيننا فالفريق الامنى مشكور على اى حال سواء لو كان تعريب او المحاولة وربى يوفقهم للتقدم اكثر
الموضوع المفروض ان ياخد طريق المناققشة للرقى بمستوانا ليس اكثر
اليكى اخى الحبيب الفريق الامنى بعض الملاحظات وارجوا منكم توضيحها لنا مع الشكر
بالنسبة اولا لاهتمامك باغلاق html tags فاعتقد انه شئ مطلوب لان الثغره اعتقد انها مازالت فعالة ولاكن تحتاج لوع من مدير السيرفر ومن من مدير المنتدى نفسه والدليل انها فعالة ايضا فى النسخ حتى الحديثة ولناخذ مثلا 3.7.4 pl1
فاليكم الموضوع
HTML Injection Hack with VBulletin 3.7.4 pl1 - vBulletin Community Forum
وهو شكوى من احد اعضاء الشركة من الاختراق بالوسومات رغم الترقية
وكان رد الدعم الرسمى للبرنامج وهو الاستفسار عن تركيبه لاى اضافات او لا
ورد بعدة اضافات فكان رد الدعم انه يجب الازالة وان عادت الكرة فطلب منه ارفاق معلومات الابتاشى لمحاولة ايجاد الخطا وذكر انه ليست معنى الترقية ان الوضع صار امنا مئة بالمئة فالدعم لم ينكر الاصابة كما انه لم يبلغ بانها مشكلة فى البرنامج فالامر يحتاج لدراية من مدير المنتدى والسيرفر
ولاكن التعقيب عليكم
استخدمت مثلا فى اغلاق الثغرة فى الموضوع الكود التالى
كود PHP:
if (isset($_REQUEST['subject'])){
$_REQUEST['subject']=remove_html_tags($_REQUEST['subject']);
}
if (isset($_GET['subject'])){
$_GET['subject']=remove_html_tags($_GET['subject']);
}
if (isset($_POST['subject'])){
$_POST['subject']=remove_html_tags($_POST['subject']);
}
}
}
استخدمت الكود request و get و post فلماذا اليس requist يغنى عن الاثنين الباقين ام لماذا استخدمت الثلاثة اكواد مع بعض ؟؟؟ تحتاج لتعقيب
بالنسبة للكود حق الspacer_open
فحسب قرائتى للهاك وخبرتى فى الكود المكتوب وليست كبيرة بل كل ما اذكر مجرد رائى وفى انتظار اى تعديل المهم حسب القراءة فقد قمت بكتابة الكود لتهميش اي شئ مكتوب فى قالب spacer_open حتى ان كان الكود الاصلى فقد قمت باضافة
كود PHP:
$vbulletin->templatecache["spacer_open"].=addslashes('
فكذا فى اعتقادى انك همشت القالب تماما وما فيه وبعدها اضفت الكود الاصلى لقالب spacer_open اتمنى ان تكونى قرائتى صحيحة
لذا فلا اعتقد انك تقدر تحمى ال forumhome بهذه الطريقة لاننا وان كنا لا نقوم بالتعديل على الspacer_open فاكيد نحتاج لتعديل forumhome وبهذه الطريقة لا نقدر نسوى التعديل او اظهارة حسب قرائتى ويرجى التصليح لى ان كنت على غير صواب
ناتى لنقطة اخرى الكود التالى فى الهاك المقدم منكم ولن اذهب الى تحليل بل الى ملاحظة اجمالية
كود PHP:
{
$issw = $_SERVER['QUERY_STRING'];
$ct_rules = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(',
'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20',
'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=',
'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(',
'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm',
'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(',
'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(',
'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall',
'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20',
'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20',
'$_request', '$_get', '$request', '$get', '.system', 'HTTP_PHP', '&aim', '%20getenv', 'getenv%20',
'new_password', '/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow',
'HTTP_USER_AGENT', 'HTTP_HOST', '/usr/bin/id',
'/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python',
'bin/tclsh', 'bin/nasm', 'perl%20', 'traceroute%20', 'ping%20', '.pl', '/usr/X11R6/bin/xterm', 'lsof%20',
'/bin/mail', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', 'config.php', 'cgi-', '.eml',
'file\://', 'window.open', '<SCRIPT>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe',
'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd',
'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', '.history',
'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20',
'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con',
'', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from',
'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', '<?php', '?>', 'sql=',
'_global', 'global_', 'global[', '_server', 'server_', 'server[', 'phpadmin',
'root_path', '_globals', 'globals_', 'globals[', 'ISO-8859-1', 'http://www.google.de/search', '?hl=',
'.txt', '.exe', 'google.de/search', 'yahoo.de', 'lycos.de', 'fireball.de', 'france.net.in','ds.nac.net','funnystories.ru','ISO-', '/bin/ps', 'wget%20', 'uname\x20-a',$vbulletin->options['issw_config'],'%20.txt?',' method=POSTxtarerowsname',
'vbulletin->config', '&icq', 'init.php', 'phpinfo()' , );
// by issw
$issw = strtolower($issw);
$checkworm = str_replace($ct_rules, '*', $issw);
if ($issw != $checkworm)
{
$ctinject_txt = DIR . '/sec/logfile_hacker.txt';
$ctcounter_txt = DIR . '/sec/counter.txt';
ما الفرق بينه وبين كود هاك الحماية CrackerTracker
كود PHP:
$cracktrack = $_SERVER['QUERY_STRING'];
$ct_rules = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(',
'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20',
'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=',
'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(',
'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm',
'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(',
'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(',
'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall',
'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20',
'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20',
'$_request', '$_get', '$request', '$get', '.system', 'HTTP_PHP', '&aim', '%20getenv', 'getenv%20',
'new_password', '/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow',
'HTTP_USER_AGENT', 'HTTP_HOST', '/bin/ps', 'wget%20', 'uname\x20-a', '/usr/bin/id',
'/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python',
'bin/tclsh', 'bin/nasm', 'perl%20', 'traceroute%20', 'ping%20', '.pl', '/usr/X11R6/bin/xterm', 'lsof%20',
'/bin/mail', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', 'config.php', 'cgi-', '.eml',
'file\://', 'window.open', '<SCRIPT>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe',
'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd',
'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', '.history',
'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20',
'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con',
'<script', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from',
'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', '<?php', '?>', 'sql=',
'_global', 'global_', 'global[', '_server', 'server_', 'server[', 'phpadmin',
'root_path', '_globals', 'globals_', 'globals[', 'ISO-8859-1', 'http://www.google.de/search', '?hl=',
'.txt', '.exe', 'google.de/search', 'yahoo.de', 'lycos.de', 'fireball.de', 'ISO-'
);
// , 'admin_', '&icq', 'php_', 'phpinfo()'
$cracktrack = strtolower($cracktrack);
$checkworm = str_replace($ct_rules, '*', $cracktrack);
if ($cracktrack != $checkworm)
{
$ctinject_txt = DIR . '/elog/logfile_injects.txt';
$ctcounter_txt = DIR . '/elog/counter.txt';
لا ارى بينهم اى فرق سوى انكم قمتمت بتغير اسم المتغير الى فريقكم وتغير اسم مجلد حساب الاختراقات الى اسم جديد
فاعتقد ان اخبارانا ان الكود مقتبس من هاك كذا كان المفروض للامانة العلمية وحفظ الحقوق الفكرية التى تنادى وننادى بها ولا نستخدمها ابدا
ملاحظة فقط
لا اعتقد ان هناك اى مشكلة فى استخدام تصريح 666 لمللفات وارجوا تديل معلومة للاخوة ان تصريح 777 هو خاص بالمجلدات وليس الملفات وهاك الاجنبى يستخدم 666 لتسجيل محاوالات الاختراق ولا اعتقد انه يوجد مشكلة من ذلك وان كنتم لا ترغبون لا حاجة لكم بتسجيل المحاولات بل الحاجة للحماية
هذا رائ شخصى منى واقبل التعديل او التوضيح عن اى نقطة اخطات فيها
تقبلوا خالص احترامى