目录

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

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. Centos 7 安装jdk 配置环境变量

    在Centos7 终端中,我们输入java -version可以看到java的版本,但是输入javac却没有反应 原因是系统中预装的是openjdk jre不是真正的jdk,所以还得自己装好,然后配置 ...

  2. Spring Security笔记:使用BCrypt算法加密存储登录密码

    在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号.密码”存储在db中,但是密码都是明文存储的,显然不太讲究.这一节将学习如何使用spr ...

  3. Spring Security授权 AccessDecisionManager

    Spring Security授权 AccessDecisionManager 博客分类: Security Spring   在前面那篇博客有一段配置: <http auto-config=& ...

  4. Java反射机制可以动态修改实例中final修饰的成员变量吗?

    问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...

  5. web文档在线阅览

    之前遇到很多各种文档在线阅览的需求,也有不少朋友经常问我这种需求的实现方案,大致试了一下网上的一些比较主流的推荐方案,但都不尽如人意,这里有一个比较全面的总结,需要的朋友可以根据自己的需求到这里查看, ...

  6. SQL Server Data Tools – Business Intelligence for Visual Studio 2012安装时提示“The CPU architecture....”的解决方法

    SQL Server Data Tools – Business Intelligence for Visual Studio 2012,一个很强大的工具,下载地址:http://www.micros ...

  7. Codeforces Round #370(div 2)

    A B C :=w= D:两个人得分互不影响很关键 一种是f[i][j]表示前i轮,分差为j的方案数 明显有f[i][j]=f[i-1][j-2k]+2*f[i-1][j-2k+1]+...+(2k+ ...

  8. dinic模板

    procedure addedge(u,v,cap:longint); begin sid[tot].u:=u; sid[tot].v:=v; sid[tot].cap:=cap; sid[tot]. ...

  9. android服务之MP3播放(2)

    该播放器将会直接从网络上获取资源进行播放,并提供进度条显示的功能 布局文件 布局文件中使用Seekbar组件来显示进度条 <?xml version="1.0" encodi ...

  10. IOS -- 获取本地图片和网络图片的大小size

    // 获取图片的size CGSize size = [UIImage imageNamed:@"regStep2_sex"].size; 获取网络图片的尺寸: // 根据图片ur ...