还是 1panel 靠谱,最新宝塔 WAF 有漏洞,可以被窃取 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 权限,进而控制整个服务器。

4 个赞

离谱。。。

宝塔强迫绑定手机号码本身就是个给国安送数据的木马了,还怕别的木马?

虽然没完全看懂,但是感觉好秀啊!

其实说宝塔偷偷上传用户信息,大家去骂我是可以理解的,毕竟什么也没说啊。
哪怕说两句对吧。
但是你这种直接都不让国安看数据的,我是完全无法理解,哥们是做啥的对隐私保护得到国安级别的?

功能少点无所谓,主要是不要出安全事故。一个面板,做好定位的功能就行了,如果一味地以垄断为目的,不断去扩展无关的功能,哪怕出一次事故,都是灾难性的。所以初心很难保持啊。

作为一个root级的入口,一个选项都要谨慎,更何况是API入口检测,这次它的问题也是醉了。