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

25 اکتبر 2019

این نوشته مربوط به آسیب پذیری هست که در سایت آپارات کشف شد که به مهاجم دسترسی لازم برای تغییر اطلاعات ویدیو های دیگر کاربران رو میداد و در حال حاضر مرتفع شده است.

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

https://www.alexa.com/topsites/countries/IR

طبق آمار آلکسا بعد از گوگل ،آپارات پر بازدید ترین سایت توی ایران هست و تقریبا همه ی نهاد ها، سازمان ها و شرکت دولتی و خصوصی داخل آپارات کانال رسمی دارند و لیستشون رو می تونید از لینک زیر ببنید.

https://www.aparat.com/official

این توضیحات مختصر در مورد آپارات و اما بریم سراغ اصل قضیه. روز جمعه صبح از خواب بیدار شدم و طبق معمول برای سرگرمی و لذت بردن از روز تعطیل چالش رو گذاشتم سایتی به اسم آپارات و شروع کردم. بعد از چند ساعت کار چند آسیب پذیری Client-Side از جمله Cross-Site Scripting خودمون پیدا کردم منتهی دنبال یه آسیب پذیری Server Side بودم. داخل پنل مدیریت کانال ، قسمت ویدیو های من کاربر می تونه عملیات های پایین رو روی ویدیو های کانالش اعمال کنه.

  • حذف ویدیو
  • افزایش بازدید ویدیو(خرید بازدید)
  • ویرایش ویدیو
  • مشاهده آمار ویدیو

من گزینه ی ویرایش ویدیو رو باز کردم و URL رو بررسی کردم.

https://www.aparat.com/video/video/edit/videohash/xCuJX

با دیدن videohash متوجه شدم که هر ویدیو یه دونه hash داره که شناسه یونیک اون هست و با استفاده از اون میشه بهش دسترسی پیدا کرد، خب سریع سناریوی تست آسیب پذیری IDOR اومد تو ذهنم.

با وارد کردن videohash ویدیوی دیگه آیا میشه بهش دسترسی پیدا کرد؟!

شروع کردم فاز کردن این عبارت پنج کاراکتری.

12345 ---> 404
KXQPo(Another Hash) ---> Redirect to https://www.aparat.com/v/KXQPo & Access Denied :(

با وارد کردن عبارت 12345 که ساختارش برای ویدیو هاست و با توجه به اینکه ویدیویی با این hash وجود نداشت خطای 404 داد، در مرحله بعد hash یک ویدیوی دیگه رو وارد کردم و به صفحه ویدیو های من هدایت شدم و خطای دسترسی به این لینک مجاز نمی باشد(Access Denied) نمایش داده شد و یعنی امن هست و رفتم تا همین عملیات رو روی مرحله ی بعد از ثبت تغییرات فاز کنم.

خب ادامه دادم و بعد از انتخاب ویرایش ویدیو بر روی ثبت تغییرات کلیک کردم تا ببنیم چه اطلاعاتی رو به سرور ارسال می کنه.

POST /video/video/edit/videohash/xCuJX HTTP/1.1
Host: www.aparat.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 179
Origin: https://www.aparat.com
Connection: close
Referer: https://www.aparat.com/video/video/edit/videohash/xCuJX
Cookie: AuthV4=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzE5OTU3OTAsImFmY24iOiIxNTcxOTk1NzEyODkzMjQiLCJzdWIiOiIzOUIwREVDRi0wQTM4LUI2RjUtNUYyNy0zQTgxQzA0OTNBMjciLCJ0b2tlbiI6IjM3MTJhODU5MjFiOWYxNTRjYjE1ZWRkZWI0ZTdjNGMzIn0.n0RvJIfrhr-Mg5_voRckMDFptqA5w4rHVHqCplkn9A8; abui50=a; _ga=GA1.2.299084626.1571995722; _gid=GA1.2.80814475.1571995722; __asc=47211dc716e023f21c3f9f2a1e7; __auc=47211dc716e023f21c3f9f2a1e7; playIconOnHover_1=new; AFCN=157199575797924; login_from=https%3A%2F%2Fwww.aparat.com%2F; apr_lb_id=m17; _gat_UA-129578036-1=1
Upgrade-Insecure-Requests: 1

title=Pwned Video&descr=its+a+test+description+for+video&tag_user=tag1-tag2-tag3&cat_id=2&playlist=0&profile_cat=0&comment_enable=approve&video_subtitle_file=&subtitle=&video_pass=status




مجددا videohash یک ویدیوی دیگه رو وارد کردم و درخواست رو ارسال کردم.

و جواب بازم Access Denied بود اما متفاوت تر از دفعه ی قبل (خطای دریافتی نشون میده برنامه نویس احتمالا درست handle نکرده)، پس یعنی یه جای کار مشکل داره، پس وارد لینک ویدیویی شدم که videohash اون رو جایگزین کرده بودم.

آسیب پذیری وجود داشت و اطلاعات ویدیوی مورد نظرم با موفقیت تغییر پیدا کرد، در نتیجه من با استفاده از این آسیب پذیری می تونستم هر اطلاعات هر کدوم از ویدیو های توی سایت آپارات رو تغییر بدم.

لینک ویدئو اثبات آسیب‌پذیری:

https://www.youtube.com/watch?v=qwgEdfnSO4c

با توجه به اینکه بسیاری از سازمان ها و شرکت های بزرگ و مهم در سایت آپارات صفحه ی رسمی داشتند مهاجمین با سوء استفاده از این آسیب پذیری می توانستند اطلاعات جعلی خود را در ویدیوهای مختلف وارد کنند و به اهداف مختلف خود (فیشینگ، تروجان و غیره) دست پیدا کنند.

همانطور که در اول نوشتار اشاره شد این آسیب پذیری به تیم آپارات گزارش شد و در حال حاضر مرتفع شده است.

1 پست نوشته شده
احسانم، اکسپولیت‌نویس قدیم و کارمند جوان یک شرکت برنامه‌نویسی که باید هر روز با زبان‌های python و NodeJs دست و پنجه نرم کنه و برنامه های امن بسازه تا شرکت مجبور نباشه به هکر ها بانتی بده :)
وقت آزادم رو صرف یادگیری مباحث جدید امنیت و پیدا کردن آسیب پذیری‌ها در سایت‌ها و سرویس‌های مختلف می کنم.
  • به اشتراک بگذارید:
  1. sasan گفت:

    بسیار عالی!
    بانتی بهش تعلق گرفت؟؟

  2. ناشناس گفت:

    سلام
    چطوری گزارش دادی و بانتی گرفتی؟

  3. TheH4x0r گفت:

    سلام احسان جان، یه شماره ای چیزی تلگرامی برام بفرست. راجب یه پروژه ای صحبت کنیم.
    sec.afzali@yahoo.com

  4. محمدحسین گفت:

    سلام … خیلی عالی بود خسته نباشید …

دیدگاه شما در مورد 0xEhsan