
अत्यंत असुरक्षित NodeJS एप्लिकेशन

डैम्न वल्नरेबल नोडजेएस एप्लिकेशन (DVNA) एक सरल नोडजेएस एप्लिकेशन है जो OWASP टॉप 10 कमजोरियाँ प्रदर्शित करने और इन कमजोरियों को ठीक करने व उनसे बचने का मार्गदर्शन प्रदान करने के लिए बनाया गया है। fixes शाखा में कमजोरियों के समाधान होंगे। OWASP टॉप 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
Docker के साथ एक ही कमांड का उपयोग करके DVNA आज़माएँ। यह सेटअप MySQL के बजाय SQLite डेटाबेस का उपयोग करता है।
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 पर पहुँचें
एप्लिकेशन में बग की स्थिति में, कृपया GitHub पर एक इश्यू बनाएँ। पुल रिक्वेस्ट का स्वागत है!
Abhisek Datta - abhisek एप्लिकेशन आर्किटेक्चर और फ्रंट-एंड कोड के लिए
MIT