Monday, February 25, 2013

About the latest Rack vulnerability and how it affected BeEF

A friend of mine, Louis @snyff Nyffenegger, recently found an XSS in Rack default 404 page. By default, Rack is reflecting the value of the not found URI in the page, without applying proper output escaping. This leads to reflected XSS.

A simple patch suggested by him is the following:
https://github.com/snyff/rack/commit/66b41c8394569e87b85122d7b2cdf194017b82c3

So how does this affect BeEF?

The bug is present when using Rack::File or similar directives to mount content in the Thin web server. We use that directive to mount the static content served via the /demos URI.

beef_server.mount('/demos/', Rack::File.new(dir))

The affected code in the file.rb Rack library is:




Bear in mind, the demo content should be disabled when using BeEF in production, especially because you're not going to hook browser using the default hook demo page. This is the same as disabling debug logging in your web application when switching to a UAT to production environment.

The exploitability of the bug itself is actually very low, because the 404 page is returned with Content-type: text/plain. To trigger an XSS with such content type you need to rely on browser bugs, which are now mostly patched, and rely on not honoring the content type leading to content type mismatches.

 And yes, I patched the bug in less than one hour from the moment I knew about the bug. So even without updating Rack to 1.4.5 or greater versions, your BeEF is gonna be safe.

This is my patch:
https://github.com/beefproject/beef/commit/c37f0e1719bb9eee71dabed15584bd672df7b443
which is basically removing completely the reflection point:



Now, as I already knew this could be an issue, something like 8 months ago I changed the default
routing behavior in the BeEF core, creating a routing.rb class that overrides the behavior of the default 404 page from Rack.

So, the whole BeEF UI/Core and RESTful-API was not vulnerable since at least 10 months ago.
The only resources mounted with Rack::File are the /demos stuff, which I honestly never use in production, disabling the extension. You can see below how a not found page is handled in BeEF's router.rb class, which is used by every component of the framework:



So, a limited-exploitability bug, on an handler that is supposed to be not available in production, and last on a library we use (not code we explicitly wrote) :D

But, as we take these things seriously, expect a BeEF module which aims at hooking BeEF itself :D


10 comments:

  1. Really nice post, however on a unrelated topic. What IDE is that you are using?

    ReplyDelete

  2. Thanks for posting this useful content, Good to know about new things here, Let me share this, . Hadoop training in pune

    ReplyDelete

  3. Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write.
    Thanks for sharing !
    tanki online 2 | 2048 game online

    ReplyDelete
  4. Make sure that you read this article before doing anything to your phone. This is important

    ReplyDelete

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

    ReplyDelete

  6. حقين شراء اثاث مستعمل في الرياض :
    عزيزي العميل إذا كنت تود أن تغير أثاث منزلك القديم وتود شراء أثاث أخر جديد وليس معك المال الكافي لذلك فنحن فى حقين شراء اثاث مستعمل في الرياض نقوم ببيع الأثاث المستعمل ونتبع الطرق المناسبة عند شراء الأثاث القديم فلا تخاف من عدم جودة الأثاث حيث اننا نقوم بالتالي :-
    • شراء اثاث مستعمل بالرياض يقوم بشراء واعادة بيعجميع قطع الأثاث .
    • يتم تلميع قطع الأثاث وإعادة إصلاح التالف منها ودهنها وعرضها بصورة لا تختلف عن الأثاث الجديد ولكن تكون بأسعار رخيصة وفي متناول يد الجميع.
    • لدينا سيارات متخصص في نقل الأثاث المستعمل إلى مكان المنزل مهما كان موقعه.
    • لدينا أفضل العمالة المدربة على نقل الأثاث بكل احترافية ومهارة في حمل قطع الأثاث وتوصيلها إليكم دون التعرض للتلف أو الكسر .
    • يوجد لدى الشركة أوناش لرفع الأثاث إذا كنتم ممن تسكنون في الأدوار العليا فلا داعي للقلق .
    شراء الاثاث المستعمل بالرياض
    شراء الاثاث المستعمل بجدة
    شراء الاثاث المستعمل بالمدينة المنورة
    في حالة الرغبة من السفر أو الهجرة خارج البلاد لفترة طويلة ولا تعرف أين تتخلص من أثاثك القديم فالآن شراء اثاث مستعمل بالرياض قامت بحل هذه المشكلة الآن يمنكم الاتصال بنا فورًا على ارقام محلات شراء اثاث مستعمل الرياض وذلك من خلال الأرقام المعلن عنها من خلال الانترنت وسوف يرد عليكم خدمة العملاء وتلقي طلباتكم حيث أن لدى شركة شراء اثاث مستعمل بالرياض فريق خدمة عملاء يعمل على مدار أربع وعشرين ساعة لخدمتكم وعقب القيام بالاتصال بنا نقوم بالآتي :
    • عند تحديد الموعد المناسب إليكم تقوم الشركة بإرسال مندوب لكم لمعاينة قطع الأثاث المراد بيعها والاتفاق معكم على أفضل سعر للأثاث المراد بيعه.
    • ثم إرسال فريق متخصص من قبل الشركة لدينا في فك قطع الأثاث بكل احترافية فلا داعي للاستعانة بنجارين أو فنيين لفك الأثاث القديم فنحن نقدم لكم تلك الخدمة مجانًا من الشركة.
    • بعدها يتم وضع الأثاث في الاسفل والعمل على رشة جيدا للحفاظ على العملاء الجدد من الاصابة في حالة بيعه .
    شراء الاثاث المستعمل بالرياض
    شراء الاثاث المستعمل بجدة

    ReplyDelete
  7. Here are some of the best apps that will turn your shots into HDR quality photos. HDR Camera. HDR Camera by Almalence is one of the best HDR cameras on the Google Play Store. Camera360. Make photography a work of art with Camera360 for Android. Retro Camera. Photaf Panorama Pro. Pro HDR Camera. Cymera. Camera ZOOM FX.

    ReplyDelete
  8. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.

    Selenium with python Training in Electronic City

    ReplyDelete
  9. Great post! I didn’t knowral of these resources and I’m going to go check them out now!wuxiaworld

    ReplyDelete