宝塔最新版有漏洞,可直接获取 root 权限
最近开源社区好像特别流行 WAF,到处都能看到宝塔云 WAF、雷池 WAF 社区版、南墙 WAF 的各种宣传。我也是宝塔面板的四五年的老用户了,几个月前看到宝塔出了独立的 WAF 就迅速给我的小站上了一套,结果没几天发现服务器被人放了挖矿木马。这段时间除了安装 WAF,服务器我基本没动过,我第一反应是不是宝塔被黑了,不过我之前用了好几年的宝塔面板,好像也没啥问题,抱着试一试的态度,把宝塔扔进了 IDA,果然找到了一个 RCE,可以通过宝塔 WAF 直接拿到 root 权限,漏洞细节如下:第一步:打开宝塔 WAF 以后,随便创建一个防护网站,这个很简单,不赘述。第二步:进入 “网站加速” 功能,打开刚刚创建的网站的加速状态,如图: 第三步:点击 “配置缓存”,如图: 第四步:点击 “清除所有缓存”,如图: 漏洞就出在这个地方,注意了,在刚刚点击 “清除所有缓存” 时,看到浏览器发了两个包出去,如图: 第一个包请求了一个叫 “clear_cache” 的 API,其中包含了一个叫 “site_id” 的参数,如图: 这个参数没做校验直接带入了系统命令之中,参考 IDA: 第五步,尝试修改 “site_id” 参数进行命令注入,加一个分号以后就可以随便写 bash 命令了,这里我写了一个 “touch /tmp/hack” 请求提交以后看看服务器,/tmp/hack 文件果然被创建成功,如图: 至此漏洞利用完成,“touch /tmp/hack” 仅作为演示,实际可以通过宝塔 WAF 拿到 root 权限,进而控制整个服务器。