به نام خدا

 

آموزش 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  کردن این کتابخانه برای اولین بار توسط خود بنده (میثم منصف) کشف شده است و امیدوار هستم از خواندن این مقاله لذت برده باشید.