目录

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

1. 漏洞描述

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

Relevant Link:

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

2. 漏洞触发条件

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

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

/admin/module/loginMod.class.php

//登陆检测
public function check()
{
if(empty($_POST['user']) || empty($_POST['password']))
{
$this->msg('帐号信息输入错误!',);
}
//获取帐号信息
/*
这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义
*/
$info = model('login')->user_info($_POST['user']); //进行帐号验证
if(empty($info))
{
$this->msg('登录失败! 无此管理员帐号!',);
}
if($info['password'] <> md5($_POST['password']))
{
$this->msg('登录失败! 密码错误!',);
}
if($info['status']==)
{
$this->msg('登录失败! 帐号已禁用!',);
}
//更新帐号信息
$data['logintime']=time();
$data['ip']=get_client_ip();
$data['loginnum']=intval($info['loginnum'])+;
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('登录成功!',);
}

5. 防御方法

/admin/module/loginMod.class.php

//登陆检测
public function check()
{
if(empty($_POST['user']) || empty($_POST['password']))
{
$this->msg('帐号信息输入错误!',);
} //sql注入防御
$_POST['user'] = addslashes($_POST['user']);
$_POST['password'] = addslashes($_POST['password']);
//获取帐号信息
/*
这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义
*/
$info = model('login')->user_info($_POST['user']); //进行帐号验证
if(empty($info))
{
$this->msg('登录失败! 无此管理员帐号!',);
}
if($info['password'] <> md5($_POST['password']))
{
$this->msg('登录失败! 密码错误!',);
}
if($info['status']==)
{
$this->msg('登录失败! 帐号已禁用!',);
}
//更新帐号信息
$data['logintime']=time();
$data['ip']=get_client_ip();
$data['loginnum']=intval($info['loginnum'])+;
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('登录成功!',);
}

6. 攻防思考

Copyright (c) 2014 LittleHann All rights reserved

duxcms SQL Injection In /admin/module/loginMod.class.php的更多相关文章

  1. ecshop /pick_out.php SQL Injection Vul By Local Variable Overriding

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出 ...

  2. How to prevent SQL injection attacks?

    In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...

  3. Zabbix 3.0.3 SQL Injection

    Zabbix version 3.0.3 suffers from a remote SQL injection vulnerability. ============================ ...

  4. 使用sqlmap注入DVWA的SQL Injection菜单

    1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...

  5. SQL注入——SQL Injection

    本文部分内容转自:https://www.cnblogs.com/rush/archive/2011/12/31/2309203.html http://www.diybl.com/course/7_ ...

  6. SQL注入(SQL Injection)案例和防御方案

    sql注入(SQL Injection):就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入攻击的主要危害包括:非法读取.篡 ...

  7. PentesterLab-From SQL Injection to Shell: PostgreSQL edition

    一.打开页面,随便点了几下,返现和From SQL Injection to Shell差不多,直奔主题开始注入 由于PostgreSQL与MySQL不同,几个关注点需要注意下 二.order by下 ...

  8. sqlmap dvwa SQL Injection使用小记

    刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...

  9. DVWA SQL Injection 通关教程

    SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...

随机推荐

  1. java:利用xpath删除xml中的空节点

    原始xml内容: <data> <a> </a> <b>b1</b> <awb> <awbpre>123</a ...

  2. 去除项目中的SVN标记

    第一步:建立一个名字叫做remove-svn-folders.reg的文本(先建立txt文件,然后粘贴内容后再修改文件名字),记得后缀要叫.reg.文本的内容为: Windows Registry E ...

  3. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  4. SQL基础之XML

    1.XML数据类型 在SQL Server中xml数据类型可以用来保存xml文档,这个文档即可以是完整的xml文档和xml片段,这样开发者就可以像使用int数据类型一样来使用xml数据类型.不过xml ...

  5. 千呼万唤岂出来,写款软件不容易——Visual Entity 2.0 发布

    在各位用户不继的催更中,终于完成了这次更新.Visual Entity这个软件发布于 2011年,这个软件完成后,便上班去了,也没有做什么推广工作.所以知道的用户并不多,尽管它是个非常好用.并且免费的 ...

  6. HTML5之CSS3 3D transform 剖析式学习之一

    最近坐地铁发现“亚洲动物基金”在地铁上做了很多公益广告,比较吸引人的是一个月熊的广告.做的很可爱.回去就搜了一下,发现这个网站是HTML5做的,非常炫. 所以想学习一下,方法就是传统的学习办法,模仿. ...

  7. 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复

    问题描述:升级 Windows 10 版本 1511 (OS 内部版本 10586.122)后,文件夹的默认打开方式变成了cmd.双击任何一个文件夹,显示相关的提示错误信息如下: [Window Ti ...

  8. mysql 安装失败解决方法

    在安装mysql的过程中,出现的最麻烦的问题和解决方法 安装后,启动不成功,就卡了,程序就没有响应. 如何解决: 找到mysql安装目录下的 #Path to the database root da ...

  9. 使用 Spring 3 来创建 RESTful Web Services

    来源于:https://www.ibm.com/developerworks/cn/web/wa-spring3webserv/ 在 Java™ 中,您可以使用以下几种方法来创建 RESTful We ...

  10. navicat cannot create file 文件名、目录名或卷标语法不正确 解决方法

    配置了mycat,用navicat连接8066端口,点击“查询”的时候发现出现报错: 开始以为是mycat的配置有问题,找了好久都没发现错误.根据提示信息进入到相应的目录发现每个连接其实就是一个win ...