نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

19 ژانویه 2023

سلام دوستان. امروز میخوام رایت اپ رسیدن به۳ تا آسیپ‌پذیری که چند روز پیش رو یه سامانه پیدا کردم رو براتون بنویسم.

ریکان:

معمولا من برای شروع روی پروگرم‌های واید اسکوپ اولین کاری که می کنم پیدا کردن ASN و CIDR های کمپانی هستش که از طریق اون‌ها به آی‌پی‌های متعلق به کمپانی برسم. دسترسی داشتن به آی‌پی‌های کمپانی تو مراحل بعدی هانت می تونه خیلی کمک کار باشه. برای مثال وقتی به یک وبسایت می رسیم که از CDN استفاده می کنه اینجا می تونیم از این ای پی‌ها برای پیدا کردن Origin IP وبسایت استفاده کنیم، یا اینکه رکورد ptr هر آی‌پی رو بگیرم و اگه فعال باشه به دامین هایی که روی آی‌پی سرویس میدن دسترسی پیدا کنیم. (تقریبا ریورس A رکورد میشه.) یا می‌تونیم پورت اسکن انجام بدیم و روی همون آی‌پی کار کنیم ولی خب باید اینجا یه وریفای انجام بدیم که سرویس روی ای پی متعلق به خوده کمپانی باشه،‌ تو این مرحله در ارتباط بودن با تیم امنیت پروگرم می تونه مفید باشه.

خب من تو مرحله اول با سرچ اسم کمپانی داخل سایت https://bgpview.io ای‌اس‌ان‌های که متعلق به کمپانی بود برام لیست شد. مرحله بعد پیدا کردن ای پی های لایو داخل ASN بود که اینجا میشه به صورت دستی‌ با این پایپ‌لاین این کارو انجام بدیم:

whois -h whois.radb.net -- '-i origin AS123' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq | mapcidr -silent | httpx

این دستور مرحله اول whois اون ASN رو می گیره و با دستور grep سی‌ای‌دی‌ار‌ها رو از خروجی Whois بیرون می‌کشه و بعد یونیک کردن اون رو به تولز mapcidr برای مپ کردن پاس میده و به IP تبدیل می‌کنه و مرحله آخر پایپ‌لاین با httpx سرویس دیسکاوری رو انجام میده. تو مرحله آخر می تونیم برا httpx هم پورت مشخص کنیم.

روش آسون تر این فلو اینه که از شودان کمک بگیریم که با این سرچ:

asn:AS123

تقریبا همین فلو رو برامون انجام میده ولی خب روش بالا خیلی کامل تره چون ممکنه یه سرویس رو یه ای پی تازه لایو شده باشه و هنوز شودان بهش درخواست نزده باشه و پیداش نکرده باشه. (سرچ ASN شودان برای اکانت ها Free در دسترس نیست و باید اکانت ممبرشیپ داشته باشید.)

خب من اینجا از شودان کمک گرفتم و حدود ۲۰۰ تا ای پی رو برام پیدا کرد و بین اونا یه صفحه که شبیه به پنل ادمین بود رو برای هانت انتخاب کردم.

شروع داستان:

خب تارگتی که انتخاب کردم یه صفحه لاگین ادمین بود که بعد از چک کردن Wappalyzer دیدم که با PHP نوشته شده

اولین چیزی که به ذهنم رسید برای تست SQLi تو صفحه لاگین بود ولی خب به نتیجه ایی نرسیدم.

توی مرحله بعد، از اونجا که تارگتمون داکیومنت روت داشت با ابزار FFUF شروع کردم به پیدا کردن دایرکتوری و فایل.

بعد از چند دقیقه روی این مسیر ریسپانس کد ۴۰۱ گرفتم:

http://target.com/Config/

داخل مرورگر به این پیج درخواست زدم و تو صفحه لاگین admin:admin‌ رو تست کردم و boom 🙂

وقتی یه همچین جای مهمی رو با همچین یوزر و پسوردی پروتکت کردن نتیجه گرفتم که این سامانه‌ باید روش کار کرد و کلی چیز میز دیگه احتمالا پیدا میشه.

بعد از اینکه دوباره سرورم رو چک کردم دیدم که چند تا فولدر دیگه مثه js, css, images, data پیدا شده ولی چیز جالبی داخلشون نبود تا اینکه رسیدم به images که فایل images.rar نظرمو جلب کرد.

داخلش یدونه فایل ورد پیدا کردم که یه دستور العمل بود به زبان چینی برای اینکه ادمین با اون بتونه لوگو و عکس‌های سایت رو تغییر بده.

احتمالا همتون اون changelogo.php رو دیدین دیگه؟ اولین کار بهش درخواست زدم و کل ریسپانس اومد ولی داخل Render برپ چک کردم که صفحه رو ببینم دیدم که صفحه لود نشده.

داخل مرورگر که تست کردم دیدم که دارم به index.php‌ ریدایرکت می شم.

شاید براتون سوال شه چرا تو تو برپ ریدایرکت نشدم!؟

جوابش اینه که اینجا یه کد جی اس داره کاربر رو ریدایرکت می کنه و چون داخل برپ جی اس پارس نمیشه ریدایرکتی هم صورت نمیگیره و برنامه نویس اومده سمت کلاینت از دسترسی یوزر عادی جلوگیری کرده با این کارش :))

قطعه کدی که این ریدایرکت رو انجام میده تگ اسکریپت هایلایت شده اس‌ که تو عکس بالا می تونید ببینید.

بعدش داخل مرورگر درخواستم رو زدم و توی برپ اون تگ رو از توی ریسپانس برداشتم و فایل طبق چیزی که انتظار داشتم بدون مشکل لود شد.

اینجا ما Response Manipulation داریم که اینجا یه استاپ ریز زدم و رفتم اینو روی کل سایت تست کردم و دیدم پنل ادمین رو هم برنامه نویس با همین روش پروتکت کرده و تونستم با حذف کردم اون قسمت از کد به پنل ادمین بدون هیچ احراز هویتی دسترسی پیدا کنم.

تا اینجا یه گزارش High و Critical رو داریم و بریم برا بخش آخر رایت اپ 🙂

بعد ریسپانس منی‌پیولیشن همیچین صفحه ایی لود میشد

که اینجا رفتم سورس سایت رو چک کردم به این قطعه کد جالب جی اس رسیدم :)‌

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

مرحله بعد اومدم یه فایل گیف رو که اجازه داده شده بود برای اپلود تستی اپلود کردم که ببینم سرور چه رفتاری رو نشون میده، که در نهایت دیدم که فایلمو داخل فولدر images بدون اینکه اصلا دسترسی درخواست کنه آپلود کرده.

خب وقت شل اپلوده نه؟

ولی خب نه :(‌

اینجارو کلی تست کردم ولی جز .png,.gif فایل دیگه ایی نتونستم آپلود کنم و کلی اینجا به هم ریختم که چرا نشد و باید حتمن میشد:)

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

آخرای چک لیست فایل آپلودم یه تست دیگه که اتفاقا چن روز قبلش از رو یه رایت آپ خونده بودم رو با تایتل Chaining دیدم با نا امیدی کامل رفتم باز کردم

یه سری پیلود XSS, SQLi,RCE,SSTI بودن که داخل filename به این صورت قرار می گرفتن رو دیدم:

filename="PAYLOADS.ext"

چون وب سرور فایل‌هارو لیست کرده بود از XSS‌ گذشتم و تمپلیت اینجینی هم این وسط نبود پس SSTI هم ایگنور شد

چون php بود و کلا توی وب سایت های php معمولا SQL Injection می‌خوره با SQLi شروع کردم ولی خب نتیجه‌ایی نداد

دیگه با ناامیدی خیلی بیشتر‌ پیلود های RCE رو تست کردم و boom! 🙂

نتیجه اش این پیلود باعث شد سرور ۳۰ ثانیه به خواب بره و اینم از RCE .

filename="test||sleep 30 ||.gif"

تو مرحله ای آخر داخل کل ای‌پی‌هایی که تو مرحله ریکان پیدا کردم تایتل این پنل رو سرچ زدم و توی همین ای‌پی رنج یه پنل دیگه دقیقا با همین مشخصات پیدا کردم و اون هم همین آسیب‌پذیری هارو داشت :)‌

گزارش :

تاریخ گزارش : ۱۴۰۱/۱۰/۲۸
تاریخ تریاژ :‌ ۱۴۰۱/۱۰/۲۸

بعد از این گزارش ها مجموع بانتی هام ۳۴۵۰ دلار شد و چند تا اچیومنت رو داخل Voorivex Academy رو هم تونستم بگیرم.

امیدوارم مفید واقع شده باشه.

1 پست نوشته شده
۲۱ سالمه و علاقه مند به امنیت:)‌
  • به اشتراک بگذارید:
  1. Yoosof گفت:

    عالی
    باریکلا
    واقعا لذت بردم

  2. matitanium گفت:

    👍❤ awesome