چطوری من می‌تونستم با استفاده از آسیب‌پذیری IDOR هر ویدئویی رو توی آپارات ویرایش کنم؟

این نوشته مربوط به آسیب پذیری هست که در سایت آپارات کشف شد که به مهاجم دسترسی لازم برای تغییر اطلاعات ویدیو های دیگر کاربران رو میداد و در حال حاضر مرتفع شده است.امروزه کمتر کسی تو ایران پیدا میشه که با سایت آپارات آشنایی نداشته باشه ، مگر اینکه کلا تا حالا از اینترنت استفاده نکرده باشه :) ، برای شروع یه سر به سایت آلکسا میزنیم و برترین سایت های ایران رو برانداز میکنیم.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 ---> 404KXQPo(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با توجه به اینکه بسیاری از سازمان ها و شرکت های بزرگ و مهم در سایت آپارات صفحه ی رسمی داشتند مهاجمین با سوء استفاده از این آسیب پذیری می توانستند اطلاعات جعلی خود را در ویدیو های مختلف وارد کنند و به اهداف مختلف خود(فیشینگ ، تروجان و...) دست پیدا کنند.همانطور که در اول نوشتار اشاره شد این آسیب پذیری به تیم آپارات گزارش شد و در حال حاضر مرتفع شده است.