داستان از این قراره که من یه تارگت رو باز کردم ;
اولین کاری که معمولا میکنم اینه که گوگل دورکینگ رو انجام میدم تا به ادرس هایی برسم که توسط گوگل ایندکس شده و به نوعی در دسترسه ;
هدف من برای این سناریو پیدا کردن یه xss بود و تنها روشی که بتونیم این اسیپ پذیری رو پیدا کنیم و اکسپلیوتش کنیم اینه که بدونیم ورودی ما دقیقا کجا میشینه ؟
به عنوان یه هانتر باید یه مفهوم مهم رو بدونیم : صفحات مختلف یه وبسایت میتونن باعث آپدیت شدن و لود شدن جاوا اسکریپت های جدید بشن و توی این مورد هم باید برسی بشه که آیا ما میتونیم با پیدا کردن سورس ها و سرچ کردن سینک های خطرناک توی dom جایی رو پیدا کنیم که مستقیما پارامتر رو از آدرس بگیره و داخل سینک خطرناک قرار بده ؟ که میشه dom xss
توی سناریوی من وقتی وبسایت رو با ip آمریکا باز کردم یه منو و دکمه برای کلیک برای من بالای صفحه وجود داشت وقتی روش کلیک کردم :
Target/shops/models
منو رو میبرد یه شاپ لوازم آرایشی بدون هیچ پارامتر اضافه تری !
چون این پیچ و صفحه فقط با اپی آمریکا باز میشد با این طرز تفکر که افراد کمتری روی این صفحه کار کردند جلو رفتم و
توی مرحله بعد یه فاز نسبتا سنگین پارامتر از نوع post,get انجام دادم , که در نتیجه یه کلمه کلیدی پیدا شد که ورودی من توی سورس صفحه رفلکت میشد :
IsOveride=test
مقدار تست توی یک تگ div رفلکت شده بود و تنها کاری که من باید میکردم این بود که تگ رو بریک کنم و اسکریپت خودمو اجرا کنم :
IsOveride=test</div><script>alert(origin)</script>
ولی تارگت یه چکر یا یه وف کاستوم داشت جلوی xss من رو میگرفت با این هشدار :
malicious request blocked
حالا وقت فرض گرفتنه , با خودم گفتم وف ممکنه وقتی تگ اسکریپت رو ببینه در جا منو بلاک کنه و شاید تارگت یه بلک لیست تعین کرده باشه ;
پس من بیام و تگ های مختلف رو امتحان کنم با این چیت : xss cheat sheet
هیچ کدوم جوابگو نبود و من در انتها متوجه شدم که چرا با خود تگ xss نزنم ؟ بعد کلی سرچ و گشتن یه پیلود خفن پیدا کردم :
target/shops/models?IsOveride=test</div><div onreadystatechange='alert(origin)'>
و بله بلک لیست بود ✅
و اون چکر یا وف دور خورد و پیلود من توی سورس نشست , همه چیز درست بود ولی یه جار کار میلنگید و پیلود اجرا نشد ❌
تصمیم گرفتم به جای فایر فاکس برم روی brave و safari تست کنم و در نهایت پیلود من فقط و فقط روی کروم اجرا شد و من تاییده reflected xss رو گرفتم👌🔥
ولی چرا این اتفاق افتاد ؟
@Dagen_security