
mitmproxy के लिए कमांड इंजेक्शन वेब फ़ज़र स्क्रिप्ट
विवरण:
यह स्क्रिप्ट कमांड इंजेक्शन कमजोरियों का पता लगाने के लिए फ़ज़िंग करती है जिसके परिणामस्वरूप रिमोट कमांड निष्पादन होता है।
समान OWASP कमजोरियों को यहां समझाया गया है --> https://www.owasp.org/index.php/Command_Injection
स्क्रिप्ट POST/PUT के बॉडी में प्रत्येक मान पर OS कमांड इंजेक्ट करने का प्रयास करेगी।
निष्पादन का पता लगाने के लिए एक अन्य उपकरण की आवश्यकता होती है जैसे वेब/icmp ट्रैफ़िक सुनना या लक्ष्य OS पर किसी निर्देशिका को देखना, आदि।
उदाहरण के लिए, यदि स्क्रिप्ट देखती है कि एक उपयोगकर्ता ने एकल POST किया है जिसका बॉडी {"webfunction": "settime", "hour": "10", "minute": "00"} है,
तो स्क्रिप्ट 5 POST उत्पन्न करेगी:
1) मूल POST (जैसा है)
{"webfunction": "settime", "hour": "10", "minute": "00"}
2) पहले मान पर CI इंजेक्शन
{"webfunction": "settime;ping 10.10.10.10", "hour": "10", "minute": "00"}
3) दूसरे मान पर CI इंजेक्शन
{"webfunction": "settime", "hour": "10;ping 10.10.10.10", "minute": "00"}
4) तीसरे मान पर CI इंजेक्शन
{"webfunction": "settime", "hour": "10", "minute": "00;ping 10.10.10.10"}
5) चरों को मूल मान पर लौटाने के लिए एक सफाई POST
{"webfunction": "settime", "hour": "10", "minute": "00"}
यदि पेलोड निष्पादित हो जाता, तो हमलावर को एक icmp पिंग पैकेट प्राप्त होता। इस उदाहरण में, वेब एप्लिकेशन सिस्टम समय सेट करने के माध्यम से कमांड इंजेक्शन/निष्पादन के लिए कमजोर है।
पूर्वापेक्षाएँ:
-mitmproxy 3.0.0+
#"Virtualenv" विधि से mitmproxy 3.0.0+ चलाने के लिए (जैसे: आपका वितरण 3.0.0+ बाइनरी का समर्थन नहीं करता)
git clone https://github.com/mitmproxy/mitmproxy.git
#"Development setup" का पालन करें यहां -> https://github.com/mitmproxy/mitmproxy (नीचे के समान)
apt-get install python3-venv
cd mitmproxy
./dev.sh #यदि त्रुटि missing python.h headers - apt-get install python3-dev आज़माएं
#mitmproxy संस्करण 3.0.0+ की पुष्टि करें
. venv/bin/activate
(venv) root@kali:/usr/local/src/source-install/mitmproxy3# mitmproxy --version
Mitmproxy version: 3.0.0 (2.0.0dev0920-0x3c934b1a)
Python version: 3.5.4
स्थापना:
#ci_fuzz.py डाउनलोड करें
git clone https://github.com/mvdevnull/ci_fuzz.git
उपयोग उदाहरण:
*ci_fuzz.py के कॉन्फ़िगरेशन अनुभाग में चर सेट करें
1)*ci_fuzz.py स्क्रिप्ट का उपयोग करके localhost पोर्ट 7777 पर सुनने वाले mitmweb को चलाएं
mitmweb --listen-port 7777 --ssl-insecure -s ./ci_fuzz/ci_fuzz.py
2)*ci_fuzz.py स्क्रिप्ट का उपयोग करके mitmweb को उसी तरह चलाएं और GUI प्रॉक्सी जैसे Burp पर upstream फॉरवर्ड करें
mitmweb --listen-port 7777 --ssl-insecure --mode upstream:https://127.0.0.1:8080 -s ./ci_fuzz/ci_fuzz.py