
Rails का एक असुरक्षित संस्करण जो OWASP Top 10 का पालन करता है
RailsGoat एक जानबूझकर कमजोर वेब एप्लिकेशन है जो Ruby on Rails पर बनाया गया है। यह OWASP Top 10 की वास्तविक दुनिया की सुरक्षा कमजोरियों को प्रदर्शित करता है और डेवलपर्स तथा सुरक्षा पेशेवरों के लिए एक व्यावहारिक प्रशिक्षण मंच के रूप में कार्य करता है।
RailsGoat एक जानबूझकर असुरक्षित Rails एप्लिकेशन है जिसे वेब एप्लिकेशन सुरक्षा सिखाने के लिए डिज़ाइन किया गया है। इसकी कमजोरियों को खोजकर और उनका दोहन करके, आप सीखेंगे:
वर्तमान संस्करण: Rails 8.0 के साथ Ruby 3.4.1
RailsGoat OWASP Top 10 की वास्तविक दुनिया की सुरक्षा कमजोरियों को प्रदर्शित करता है, जिनमें SQL इंजेक्शन, क्रॉस-साइट स्क्रिप्टिंग (XSS), प्रमाणीकरण संबंधी समस्याएँ, असुरक्षित प्रत्यक्ष ऑब्जेक्ट संदर्भ और बहुत कुछ शामिल है।
विस्तृत स्पष्टीकरण और ट्यूटोरियल के साथ कमजोरियों की पूरी सूची के लिए, RailsGoat Wiki देखें।
Ruby में नए हैं? अपने ऑपरेटिंग सिस्टम के लिए GoRails पर दिए गए सेटअप गाइड का पालन करें।
रिपॉजिटरी क्लोन करें:
git clone https://github.com/OWASP/railsgoat.git
cd railsgoat
निर्भरताएँ स्थापित करें:
gem install bundler
bundle install
डेटाबेस सेटअप करें:
rails db:setup
सर्वर प्रारंभ करें:
rails server
अपना ब्राउज़र खोलें:
http://localhost:3000 पर जाएँ और खोजना शुरू करें!
main ब्रांच Rails 8 चलाती है। पुराने संस्करणों के लिए, ब्रांच बदलें:
git checkout rails_3_2 # Rails 3.2
git checkout rails_4_2 # Rails 4.2
git checkout rails_5 # Rails 5.x
कौन सी सुरक्षा कमजोरियाँ मौजूद हैं, यह देखने के लिए भेद्यता परीक्षण सूट चलाएँ:
rails training
प्रत्येक विफल परीक्षण एक कमजोरी का संकेत देता है। परीक्षण आउटपुट में एक विकि ट्यूटोरियल का लिंक शामिल होता है जो बताता है:
किसी विशिष्ट भेद्यता परीक्षण को चलाने के लिए:
rails training SPEC=spec/vulnerabilities/sql_injection_spec.rb
प्रत्येक कमजोरी पर विस्तृत ट्यूटोरियल के लिए RailsGoat Wiki देखें, जिनमें शामिल हैं:
उन्नत और आधुनिक Rails सुरक्षा अवधारणाओं को कवर करने वाला अतिरिक्त दस्तावेज़:
आवश्यकताएँ: Docker और Docker Compose 1.6.0+
Mac Apple Silicon (ARM64) के लिए: Rosetta स्थापित होना चाहिए
docker-compose build
docker-compose run web rails db:setup
docker-compose up
एप्लिकेशन http://localhost:3000 पर उपलब्ध होगा
समस्या निवारण: यदि कंटेनर "A server is already running" त्रुटि के साथ बाहर निकलता है, तो अपनी कार्यशील निर्देशिका से tmp/pids/server.pid हटाएँ और पुनः प्रयास करें।
कुछ SQL इंजेक्शन कमजोरियों के लिए MySQL की आवश्यकता होती है। MySQL के साथ चलाने के लिए:
# Create and migrate the database
RAILS_ENV=mysql rails db:create
RAILS_ENV=mysql rails db:migrate
# Start the server
RAILS_ENV=mysql rails server
RailsGoat ईमेल को रोकने के लिए MailCatcher का उपयोग करता है:
gem install mailcatcher
mailcatcher
ईमेल http://localhost:1080 पर देखें
यह सत्यापित करने के लिए कि कमजोरियाँ अभी भी मौजूद हैं, RAILSGOAT_MAINTAINER पर्यावरण चर सेट करें:
RAILSGOAT_MAINTAINER="yes" bundle exec rspec
अनुरक्षक मोड में, परीक्षण तब पास होते हैं जब कमजोरियाँ सही ढंग से लागू की गई हों (प्रशिक्षण मोड के विपरीत)।
हम योगदान का स्वागत करते हैं! विवरण के लिए कृपया हमारे योगदान दिशानिर्देश देखें।
सहायता चाहिए?
RailsGoat को Rails एप्लिकेशन में सुरक्षा कमजोरियों को प्रदर्शित करने और सुरक्षित कोडिंग प्रथाओं को सिखाने के लिए बनाया गया था। इसे Rails संस्करण 3, 4, 5, 6 और अब 8 के माध्यम से लगातार अद्यतन किया गया है, जो फ्रेमवर्क के विकसित होने के साथ इसकी प्रासंगिकता बनाए रखता है।
OWASP Top Ten 2013 में रूपांतरण नवंबर 2013 में पूरा हुआ।
चेतावनी: इस एप्लिकेशन में गंभीर सुरक्षा कमजोरियाँ हैं। इसे कभी भी सार्वजनिक सर्वर या नेटवर्क पर तैनात न करें। इसका उपयोग केवल पृथक प्रशिक्षण वातावरण में करें।