专栏名称: 衡阳信安
船山院士网络安全团队唯一公众号,为国之安全而奋斗,为信息安全而发声!
目录
相关文章推荐
51好读  ›  专栏  ›  衡阳信安

CVE-2024-399111 PanelRCE漏洞复现

衡阳信安  · 公众号  ·  · 2024-08-12 00:00

正文

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的规则

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

http://URL/xpack/waf/websites

直接测试有没有注入

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

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

3.2文件定位

进入op到容器里面

docker exec -it 8fbeeb7b4dbc /bin/bash

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

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

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

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

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

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


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

/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'






请到「今天看啥」查看全文