02128428905

آموزش ساخت اسکنر باگ Xss با پایتون

 

سلام خدمت تمامی کاربران گل وبسایت تیم امنیتی اولترا

 

یکی از رایج ترین آسیب پذیری ها در بحث وب Xss است ، که به جرات میتونم بگم که اکثرا سایت های دنیا این آسیب پذیری رو دارن ، الان شاید خیلی ها باور نکنن ولی خب کافیه یه نگاهی به تصاویر زیر بندازید

 

 

 

 

 

 

 

 

 

این تنها دو نمونه از وجود آسیب پذیری Xss در دوتا از برترین سایت های ایران هست که توسط تیم امنیتی اولترا کشف و گزارش شده است ، الان فکر کنم که بهتر درک کردید که باگ Xss چقدر ممکنه رخ بده و حتی در سایت هایی که فکرشو نمیکنید هم این باگ پیدا میشه ، در این مطلب ما میخواهیم به شما یاد بدیم که با کمک پایتون یک اسکنر برای باگ Xss بسازید.

 

 

 

آشنایی با باگ Xss :

 

Xss مخفف Cross Site Scripting هست که به جای C از X  در اول کلمه استفاده شده چون با Css که برای زیبایی صفحات وب استفاده میشه اشتباه گرفته نشه.

علت به وجود آمدن این باگ  اینه که ورودی هایی که از کاربر گرفته شده بدون فیلتر کردن ورودی در صفحه چاپ میشه به فرض مثال تصور کنید یک سایت قسمتی برای سرچ در سایت قرار داده و قراره ورودی سرچ در صفحه چاپ بشه ، خب الان یه نفر بیاد کد HTML یا JS وارد کنه چه اتفاقی میوفته ؟ بر اساس اصولی که ما میدونیم مرورگر این کد هارو ترجمه میکنه و بعد توی صفحه نتیجه رو نشون میده که یک نمونه رو در تصویر زیر میبینیم

 

 

 

خب الان که با یاگ Xss آشنا شدیم بریم سراغ ساخت اسکنر برای باگ Xss ، اسکنر هایی که وجود دارن برای تشخیص باگ Xss میان پیلود تست میکنن برای مثال اسکنر یه درخواست با متد گت ارسال میکنه

 

 

<http://example.com/search?q=<script>alert(1)</script

 

بعد از فرستادن درخواست میاد سورس html رو تحلیل میکنه و بعد میگه که این سایت باگ داره یا نه خب برای اینکه ما همچین اسکنری بنویسیم با پایتون اول از همه باید لیستی از پیلود های xss رو تهیه کنین میتونین از لینک زیر این لیست رو بدست بیار

 

 

https://github.com/payloadbox/xss-payload-list/blob/master/xss-payload-list.html

 

 

سورس اسکنر :

 

 

 

 

 

در خط اول ابتدا ماژول requests برای ارسال درخواست رو فراخوانی کردیم و بعد در خط دوم یه ورودی از کاربر میگیرم و بعد از اون در خط سوم فایلی که توی اون پیلود ها قرار داره رو فراخوانی میکنیم و بعد با استفاده از حلقه for پیلود هارو میریزم توی متغیر payload و در خط پنجم این استرینگ رو ادیت میکنیم که اشتباهی پیش نیاد در خط ششم هم درخواست و پیلود رو میفرستیم , یه شرط تعریف کردیم که اگه  کد وضعیت ۲۰۰ باشه وارد بلاک شرط بشو ، یه شرط دیگه تعریف کردیم که اگر پیلود توی سورس html باشه باگ داره

 

 

برای مثال یک کد Php آسیب پذیر به باگ Xss هم داریم که در تصویر زیر میبینید

 

 

 

 

اگه مقدار q با استفاده از متد get ست شده باشه مقدارشو روی صفحه نمایش میده نتیجه اجرای کد Php آسیب پذیر :

 

 

 

 

 

حالا میایم اسکنر خودومون رو تست میکنیم 🙂

 

 

 

 

 

و میبینید که اسکنری که ساختیم به خوبی کار میکنه و تک تک پیلود ها رو تست میکنه و از هرکدوم نتیجه بگیره به ما نشون میده

 

 

امیدوارم که از این آموزش هم لذت کافی رو برده باشید….

دیدگاه کاربران
  • مهدی 3 سپتامبر 2019

    سلام راهی وجود داره که تو یک فروشگاه اینترنتی که کد تخفیفشو داریم کاری کنیم اون کد چند بار اعمال بشه یا مثلا بشه به همراه یه کد تخفیف دیگه ازش استفاده کرد؟

    • اشکان مقدس 4 سپتامبر 2019

      سلام

      بدون دسترسی به سایت خیر نمیشه

  • حمید 11 سپتامبر 2019

    سلام این باگ فقط در قسمت سرچ سایتهاست؟

    • اشکان مقدس 13 سپتامبر 2019

      سلام

      خیر صرفا سرچ نیست

  • احمد 13 دسامبر 2019

    سلام.لینک رو اصلاح کنید لطفا

    • اشکان مقدس 13 دسامبر 2019

      سلام

      کدوم لینک مشکل داره؟

  • محمد 30 ژانویه 2020

    سلام اقا لینکی که برا یدانلود پیلود گزاشتین (همون سایت گیت هاب) مشکل داره لزفا درستش کنین ارور ۴۰۴ نات فوند میده مقه اینکه حذف شده اگه حذف شده لطفا یکی دیگه بزارید

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *