ابزار Pixload یکی از ابزار های پیشرفته در حوزه تست نفوذ میباشد که به واسطه آن توانایی ساخت و تزریق Payload های مخرب را به سمت فایل های تصویری با فرمت های متنوع را داریم. این ابزار توانایی ایجاد فایل Polyglot را برای ما دارد که به واسطه آن میتوانیم مکانیزم های امنيتي خاصی مانند CSP را دور بزنیم و از این بابت این ابزار در فرآیند های تست نفوذ وب بسیار پرکاربرد میباشد زیرا به واسطه آن میتوانیم فایل هارا بر روی سرور وب سایت مورد نظر آپلود کنیم و با اجرا کردن آن فایل دسترسي مورد نظرمان را از سمت سیستم مقابل ویا سرور وب سایت مقابل به دست بیاوریم از این رو PixLoad سازگاری بسیار خوبی با اکثر مرورگرهای وب مانند Safari و IE و Edge و Firefox و دیگر مرورگر های مطرح دنیا دارد.
فایل های Polyglot چیست؟
درواقع در حوزه کامپیوتر به فایل های که با فرمت های متنوع و زبان های برنامه نویسی مختلف نوشته میشوند و درکنار هم قرار میگیرند فایل های Polyglot میگویند.
ویژگی های PixLoad چیست؟
- دور زدن مکانیزم امنیتی CSP به واسطه JPEG Polyglot
- رمزنگاری Web Shell در فایل های PNG IDAT
- قرار دادن XSS Payload در فایل های PNG و IDAT
- توانایی ایجاد فایل های تصاویر مخرب با فرمت های متنوع
- توانایی ایجاد فایل های Polyglot
نحوه نصب و راه اندازی PixLoad چگونه است؟
برای اینکار ابتدا آن را از GitHub آن دانلود میکنیم پس از دانلود و Clone کردن فایل PixLoad از GitHub
$ git clone https://github.com/chinarulezzz/pixload.git
همچنین از دستور زیر برای نصب پیش نیازات آن استفاده میکنیم:
$ sudo apt install libgd-perl libimage-exiftool-perl libstring-crc32-perl
نحوه بکارگيري PixLoad برای ساخت تصاویر مخرب
شما میتوانید از Payload های Default خوده PixLoad نیز استفاده کنید که ما در این آموزش از PixLoad و همچنین در قسمت پایین هر تصویر نحوه وارد کردن Payload را نیز قرار میدهیم از این مباحث که بگذریم باید برویم سراغ اصل مطلب که نحوه ساخت Payload مخرب در قالب تصویر میباشد برای اینکار کافی است وارد دایرکتوری مربوط به PixLoad شوید و براساس نیازتان و فایل فرمت مورد نظرتان شروع به ایجاد تصاوير کنید، برای مثال:
ساخت BMP Payload
$ ./bmp.pl [-payload 'STRING'] -output payload.bmp
ساخت فایل GIF Payload
$ ./gif.pl [-payload 'STRING'] -output payload.gif
ساخت فایل JPG Payload
- بخش 1: تزریق در بخش Comment
$ ./jpg.pl -place COM -output payload.jpg
- بخش 2: تزریق در DQT Table
$ ./jpg.pl -place DQT -output payload.jpg
ساخت فایل PNG Payload:
$ ./png.pl [-payload 'STRING'] -output payload.png
سلام برشما خسته نباشید.
مکانیزم Content Security Policy که کارش معلومه یک لایه امنیتی اضافی که معمولا برای جلوگیری از حملات XSS بکارگیری میشه و وظیفه تعیین این رو داره چه عواملی(مثله فایل ها، کدهای مختلف و تگ ها) اجازه اجرا سازی شدن رو دارند.
این وسط با پیاده سازی کردن فرآيند های مانند JPEG Polyglot ما توانایی این رو داریم دوتا فایل رو ترکیب کنیم و مثله یک اسب تروا عمل کنه برامون این ترکیب کردن فایل ها گفته میشه Polyglot و از این بابت مثالش میتونه GIFRAR باشه که ترکیبی از فایل GIF و RAR هست
اینجاهم کد مخرب ما که میتونه یک اسکریپت ساده JavaScript باشه درون یک فایل تصویری قرار گرفته و موجب این میشه که مکانیزم های مثله CSP که کنترل کننده عوامل مختلف هستند از این فایل ها گذر کنند.
و از طرف دیگه راجب سوال دومتون این موضوع رو خوده بنده تست نکردم اما خب میتونه به عنوان یک فرضیه درنظر گرفته بشه که کد مخرب ما یک کد Reverse Shell با زبان JS باشه حالا من تجربهم بیشتر توی حوزه Network PenTest هست تا Web PenTest ولی خب خودتون میتونید تست کنید و بررسی رو داشته باشید حالا از این بابت
سلام، مطالب خوبی بود.
چند تا نکته رو که گفتید متوجه نشدم :
«دور زدن مکانیزم امنیتی CSP به واسطه JPEG Polyglot»
«با اجرا کردن آن فایل دسترسي مورد نظرمان را از سمت سیستم مقابل ویا سرور وب سایت مقابل به دست بیاوریم» در واقع در صورتی که تصویر آلوده روی سیستم هدف بارگیری بشه، ما می تونیم دسترسی بگیریم ؟
ممنون میشم این موارد رو بیشتر توضیح بدید