10

宝塔面板6.x版本前台存储xss+后台csrf组合拳getshell

 3 years ago
source link: https://www.heibai.org/812.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

宝塔面板6.x版本前台存储xss+后台csrf组合拳getshell

M4st 2018-11-14 宝塔面板xssGetshell

宝塔是近几年刚崛起的一款服务器面板,深受各大站长的喜欢,windows2003 windows2008windosws 2012系统,linux centos deepin debian fedora系统都可以使用宝塔的面板来管理服务器,宝塔可以一键部署网站的环境,IIS环境搭建,Nginx环境,PHP环境搭建,apache jsp环境,mysql数据库,oracle数据库搭建,以及一键设置FTP账户密码,文件面板在线管理都可以很简单的利用宝塔搭建起来。

2018年10月11日宝塔Linux更新到6.0版本,很多新功能加入到linux宝塔面板中,面板的功能再多,还是会存在着一些漏洞,这也是无法避免的,在实际的安全检测当中发现linux 6.0面板存在着漏洞,相当于早些5.0以上版本,存在着宝塔XSS存储性漏洞。

问题发生在宝塔的控制面板系统安全这里,默认用户登录失败会记录到宝塔的系统安全里,我们看看下代码:

a33c876e30bc48439191aab7c8286944.png 宝塔面板6.x版本前台存储xss+后台csrf组合拳getshell  宝塔面板 xss Getshell 第1张3dda8369ccd243468ee0a1a1d058ff22.png 宝塔面板6.x版本前台存储xss+后台csrf组合拳getshell  宝塔面板 xss Getshell 第2张

漏洞的产生就是在这个代码里,通过代码可以看出代码首先判断是否是正确的用户名密码,再来判断验证码,判断登录失败的IP是否还有其他登录失败的日志记录,如果这个值大于1就日志记录一下,宝塔的系统安全会自动将大于1的用户名以及密码都进行了日志记录,从宝塔的数据库中去读取当前宝塔管理员的账户密码,来进行互相对比,如果没有对比成功,就会返回一个错误的值。最关键的一个代码就是当post登录宝塔面板的时候就会将code写入到专门写系统安全日志的一个函数里面去,通过对其函数的追逐发现,这个函数就是写日志的功能,定义teyp然后再定义args,从code值传递过来就写进了宝塔的系统安全日志当中去。 在这个code值中可以插入恶意的参数,写进系统安全的日志中,XSS存储漏洞就在这产生了,可以构造xss获取管理员的账户密码以及cookies值,当服务器的管理员点击后台的系统安全,就会使宝塔漏洞触发。

201811141542166752203050.png

我们来测试一下这个宝塔漏洞,首先输入宝塔的地址,默认都是服务器IP,888端口,然后输入账户密码,随意输入,当输入错误的时候,再次登录就是输入验证码。在验证码这里可以写XSS攻击代码<script>alert('网络安全测试')</script>

201811141542166768461071.jpeg

当管理员登录后台,点击安全,就会弹出安全测试的提示框。构造精心准备的xss代码就可以获取到当前登录的管理员cookies值,复制这个值直接进后台操作即可。

目前宝塔linux面板漏洞,官方已经紧急修复,很多使用宝塔面板的服务器还没有修复升级打补丁!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK