به نام خدا
آموزش Bypass کردن
ماژول express-validator
در Express JS
نویسنده :
میثم منصف
Meisam Monsef
کارشناس امنیت
Telegram ID : @meisamrce
Email : meisamrce@gmail.com
Telegram Channel : @dorsateam
مقدمه :
Express JS یکی از قویترین فریم ورک های ساخت و پیاده سازی پروتکل وب (HTTP / HTTPS) در پلتفرم Node JS میباشد.
کتابخانه واسط با نام express-validator برای فریم ورک Express JS به نشانی
https://express-validator.github.io/docs/
وجود دارد که در اکثر پروژه ها مورد استفاده قرار می گیرد و وظیفه اصلی این کتابخانه اعتبارسنجی ورودی های کاربر (Validation) و پاک سازی داده های نامعتبر (Sanitization) برای جلوگیری حملات هکر ها میباشد .
در این مقاله به نحوی Bypass کردن پاک سازی داده های نامعتبر (Sanitization) در این کتابخانه می پردازیم
توجه داشته باشید که این مقاله صرفا جهت افزایش امنیت و گزارش ضعف این کتابخانه میباشد و هرگونه سوء استفاده به عهده خواننده میباشد.
ساخت یک پروژه آسیب پذیر :
ابتدا وارد این سایت https://nodejs.org/en/ و Node JS را دانلود و نصب کنید .
بعد در یک مسیر مشخص پوشه ای به نام nodeApp بسازید .
و با باز کردنcmd.exe با دستور cd وارد مسیر پوشه ای nodeApp شوید .
دستور npm init را وارد کرده و مانند تصویر زیر مقادیر را وارد کنید .
بعد دستورات زیر را وارد کنید تا ابتدا فریم ورک Express JS نصب و ماژول express-validator به پروژه ما اضافه شوند .
حال یک فایل با نام app.js درون پوشه nodeApp ایجاد کنید و کد های زیر درون فایل بنویسید .
حال در cmd.exe دستور node app.js را بزنید تا پروژه شما اجرا شود .
در کد بالا گفتیم که پورت 3000 را باز کن و یک وب سرور HTTP بساز و بعد یک روتر index ایجاد کرده ایم و گفته ایم که ورودی که با نام id و بصورت GET توسط کاربر ارسال شده است را Sanitize کن و به هکر اجازه نده که بتواند کدهای HTML
و یا JavaScript تزریق کند برای درک بهتر به تصویر زیر دقت کنید .
همان طور که در تصاویر بالا می بینید ورودی کاملا پاک سازی شده و به هکر اجازه داده نشده که بتواند کد مخرب تزریق کند .
نحوه Bypass کردن :
خوب می رسیم به جای شیرین قصه همان طور که دید کد های تزریق شده تاثیری نداشته و کار هکر به بن بست رسیده
اما یک لحظه صبر کنید برای bypass کردن این موضوع کافی است نام فیلد ورودی را تبدیل به آرایه کنید .
همان طور که در تصویر بالا می بینید هکر توانست با bypass کردن کد مخرب خود را تزریق کند نحوه bypass کردن این کتابخانه برای اولین بار توسط خود بنده (میثم منصف) کشف شده است و امیدوار هستم از خواندن این مقاله لذت برده باشید.