همه چیز از آپلود یک عکس شروع شد
تصمیم داشتم عکسی از طریق لینک برای افرادی بفرستم تا با باز کردن لینک، عکس رو ببینند یا دانلود کنند.
برای اینکار باید دنبال یک سایت آپلودر فایل میگشتم، با یک سرچ کوچک در گوگل متوجه شدم کلی سایت برای این کار وجود دارند.
تصویر مورد نظر رو آپلود و لینک اشتراکش رو کپی کردم، وقتی که لینک رو با مرورگر باز کردم تصویر باز شد!
با خودم گفتم با توجه به اجرای عکس داخل سایت، آیا میتوان کد های مخرب رو داخل یک تصویر برای سایت آپلود کنم و همونجا اجرا کنم؟
شروع کردم به نوشتن یک فایل با پسوند svg
همانطور که میدونید، ما با این فرمت و با استفاده از چند خط کد میتوانیم هر عکسی رو طراحی کنیم!
اول از همه یک فایل میسازیم، کدی که من برای داخل فایل استفاده کردم:
<svg xmlns="http://www.w3.org/2000/svg">
alert("hacked by me!");
<rect x="0" y="0" height="500" width="500" style="fill: #000000"/>
</svg>
اصلا این کد چی هست؟
ما در این کد اول یک تگ svg باز کردیم،
و بعد داخل تگ script، کد javascript دلخواه خودمون رو با هدف انجام حملات XSS نوشتیم.
alert("hacked by me!");
این کد جاوااسکریپت یک پیغام تحت عنوان:
hacked by me!
همینطور شما میتوانید بجای این جمله از هرجمله ای که دوست دارید استفاده کنید.
<rect x="0" y="0" height="500" width="500" style="fill: #000000"/>
با این کد یک مربع 500 در 500 به رنگ مشکی یا کد رنگی 000000# طراحی کردم تا ظاهر یک عکس به خودش بگیرد و درنهایت تگ svg رو بستم.
فایل رو با پسوند svg ذخیره، داخل سایت آپلود و لینک اشتراکش رو کپی کردم.
وقتی که لینک رو باز کردم با این پیغام مواجه شدم:
hacked by me!
که این یعنی به XSS خوش اومدین!!