duxcms SQL Injection In /admin/module/loginMod.class.php

目录

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

 

1. 漏洞描述

duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业、公司、新闻、个人等相关行业的网站内容管理,它的后台登录处存在sql注入,黑客可通过这个漏洞获取管理员密码、直接任意用户登录后台等攻击

Relevant Link:

http://www.wooyun.org/bugs/wooyun-2010-063055


2. 漏洞触发条件

1. 用户名
-1" union select 1,2,3,'c4ca4238a0b923820dcc509a6f75849b',5,6,7,8,9,10,11#
/*
这里的md5就是数字1的md5
*/

2. 密码: 1


3. 漏洞影响范围
4. 漏洞代码分析

/admin/module/loginMod.class.php

//登陆检测
public function check()
{
    if(empty($_POST['user']) || empty($_POST['password']))
    {
        $this->msg('帐号信息输入错误!',0);
    }
    //获取帐号信息
    /*
    这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义
    */
    $info = model('login')->user_info($_POST['user']); 

    //进行帐号验证
    if(empty($info))
    {
        $this->msg('登录失败! 无此管理员帐号!',0);
    }
    if($info['password'] <> md5($_POST['password']))
    {
        $this->msg('登录失败! 密码错误!',0);
    }
    if($info['status']==0)
    {
        $this->msg('登录失败! 帐号已禁用!',0);
    }
    //更新帐号信息
    $data['logintime']=time();
    $data['ip']=get_client_ip();
    $data['loginnum']=intval($info['loginnum'])+1;
    model('login')->edit($data,intval($info['id']));
    //更新登录记录
    model('log')->login_log($info);
    //设置登录信息
    $_SESSION[$this->config['SPOT'].'_user']=$info['id'];
    model('user')->current_user(false);
    $this->msg('登录成功!',1);        
}


5. 防御方法

/admin/module/loginMod.class.php

//登陆检测
public function check()
{
    if(empty($_POST['user']) || empty($_POST['password']))
    {
        $this->msg('帐号信息输入错误!',0);
    }

    //sql注入防御
    $_POST['user'] = addslashes($_POST['user']);
    $_POST['password'] = addslashes($_POST['password']);
    //获取帐号信息
    /*
    这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义
    */
    $info = model('login')->user_info($_POST['user']); 

    //进行帐号验证
    if(empty($info))
    {
        $this->msg('登录失败! 无此管理员帐号!',0);
    }
    if($info['password'] <> md5($_POST['password']))
    {
        $this->msg('登录失败! 密码错误!',0);
    }
    if($info['status']==0)
    {
        $this->msg('登录失败! 帐号已禁用!',0);
    }
    //更新帐号信息
    $data['logintime']=time();
    $data['ip']=get_client_ip();
    $data['loginnum']=intval($info['loginnum'])+1;
    model('login')->edit($data,intval($info['id']));
    //更新登录记录
    model('log')->login_log($info);
    //设置登录信息
    $_SESSION[$this->config['SPOT'].'_user']=$info['id'];
    model('user')->current_user(false);
    $this->msg('登录成功!',1);        
}


6. 攻防思考

Copyright (c) 2014 LittleHann All rights reserved

 

转载于:https://www.cnblogs.com/LittleHann/p/4353611.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DUXCMS是一款基于PHP MYSQL运行的开源建站系统,程序采用CANPHP框架编写,特别合适大小型公司企业、政府等使用。 程序特点: 1、小巧易用,程序压缩后大小只有1M左右,虽小功能却不简单,且尽可能的减少您的操作繁琐。2、功能实用,程序提供了基本企业站的实用功能,没有过多的多余功能,极大的方面了用户快速掌握程序的使用。3、多点缓存,程序采用数据库、模板、静态等缓存免去了生成静态的麻烦且访问效果和静态一样快速。4、简单的模板开发,程序采用了独有的模板标签来分离程序和界面的开发,标签简单易用让你快速开发出心仪的界面。5、附加模型字段,使用程序中往往会有多的字段需要使用比如产品编号等,这些可以使用附加模型来解决多余的字段功能。6、多功能表单,用户在后台可生成自己想要的表单功能,如留言板、友情链接、订房、表单反馈等,极大的减少了自主开发功能的难度。7、强大的技术支持,程序基于canphp框架结构编写,框架拥有完善的文档和帮助支持,使您二次开发、插件开发得心应手。8、开源免费,源码完全无加密开发,免去了您的后顾之忧,程序可免费无限制使用,但是禁止包皮发布。 运行环境: 操作系统:windows/linux/macosx服务器环境:apache2.X/IIS5 /NGNIX(需要开启INFO模式支持)PHP版本:5.2/5.3MYSQL版本:5.1及以上

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值