
Damn Vulnerable NodeJS Application

تطبيق NodeJS القابل للاختراق (DVNA) هو تطبيق NodeJS بسيط يُستخدم لتوضيح أهم 10 ثغرات حسب OWASP وتقديم إرشادات حول إصلاح هذه الثغرات وتجنبها. يحتوي فرع fixes على إصلاحات للثغرات. إصلاحات ثغرات OWASssP Top 10 لعام 2017 موجودة في فرع fixes-2017.
يعمل التطبيق باستخدام مكتبات شائعة مثل express و passport و sequelize وغيرها.
يأتي التطبيق مع دليل شامل سهل الاستخدام للمطورين يمكن استخدامه لتعلم الثغرات وتجنبها وإصلاحها. الدليل متاح في docs ويغطي ما يلي:
منشور المدونة الخاص بهذا الإصدار متاح على https://blog.appsecco.com/damn-vulnerable-nodejs-application-dvna-by-appsecco-7d782d36dc1e
يمكنك إعداد خادم Gitbook محلي للوصول إلى التوثيق باستخدام الأوامر التالية. سيكون التوثيق متاحًا بعد ذلك على http://localhost:4000.
cd docs/
docker run --rm -v `pwd`:/gitbook -p 4000:4000 --name gitbook amontaigu/gitbook gitbook serve
جرب DVNA باستخدام أمر واحد مع Docker. يستخدم هذا الإعداد قاعدة بيانات SQLite بدلاً من MySQL.
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
الوصول إلى التطبيق على http://127.0.0.1:9090/
يمكن نشر DVNA بثلاث طرق:
التعليمات التفصيلية حول الإعداد والمتطلبات موجودة في دليل Gitbook.
استنساخ هذا المستودع
git clone https://github.com/appsecco/dvna; cd dvna
إنشاء ملف vars.env مع تكوين قاعدة البيانات المطلوب
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
تشغيل التطبيق وقاعدة البيانات باستخدام docker-compose
docker-compose up
الوصول إلى التطبيق على http://127.0.0.1:9090/
سيتم إعادة تحميل التطبيق تلقائيًا عند تغيير الشيفرة، لذا لا تتردد في تعديله وتجربته.
إنشاء ملف باسم vars.env بالتكوين التالي
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
تشغيل حاوية MySQL
docker run --rm --name dvna-mysql --env-file vars.env -d mysql:5.7
تشغيل التطبيق باستخدام الصورة الرسمية
docker run --rm --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna
الوصول إلى التطبيق على http://127.0.0.1:9090 وابدأ الاختبار!
استنساخ المستودع
git clone https://github.com/appsecco/dvna; cd dvna
تكوين متغيرات البيئة بمعلومات قاعدة البيانات الخاصة بك
export MYSQL_USER=dvna
export MYSQL_DATABASE=dvna
export MYSQL_PASSWORD=passw0rd
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
تثبيت التبعيات
npm install
تشغيل التطبيق
npm start
الوصول إلى التطبيق على http://localhost:9090
في حالة وجود أخطاء في التطبيق، يُرجى إنشاء مشكلة (issue) على GitHub. طلبات السحب (Pull requests) مرحب بها جدًا!
Abhisek Datta - abhisek على بنية التطبيق والشيفرة الأمامية
MIT