duxcms SQL Injection In /admin/module/loginMod.class.php
目录
. 漏洞描述
. 漏洞触发条件
. 漏洞影响范围
. 漏洞代码分析
. 防御方法
. 攻防思考
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的更多相关文章
- ecshop /pick_out.php SQL Injection Vul By Local Variable Overriding
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出 ...
- How to prevent SQL injection attacks?
In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...
- Zabbix 3.0.3 SQL Injection
Zabbix version 3.0.3 suffers from a remote SQL injection vulnerability. ============================ ...
- 使用sqlmap注入DVWA的SQL Injection菜单
1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...
- SQL注入——SQL Injection
本文部分内容转自:https://www.cnblogs.com/rush/archive/2011/12/31/2309203.html http://www.diybl.com/course/7_ ...
- SQL注入(SQL Injection)案例和防御方案
sql注入(SQL Injection):就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入攻击的主要危害包括:非法读取.篡 ...
- PentesterLab-From SQL Injection to Shell: PostgreSQL edition
一.打开页面,随便点了几下,返现和From SQL Injection to Shell差不多,直奔主题开始注入 由于PostgreSQL与MySQL不同,几个关注点需要注意下 二.order by下 ...
- sqlmap dvwa SQL Injection使用小记
刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...
- DVWA SQL Injection 通关教程
SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...
随机推荐
- Centos 7 安装jdk 配置环境变量
在Centos7 终端中,我们输入java -version可以看到java的版本,但是输入javac却没有反应 原因是系统中预装的是openjdk jre不是真正的jdk,所以还得自己装好,然后配置 ...
- Spring Security笔记:使用BCrypt算法加密存储登录密码
在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号.密码”存储在db中,但是密码都是明文存储的,显然不太讲究.这一节将学习如何使用spr ...
- Spring Security授权 AccessDecisionManager
Spring Security授权 AccessDecisionManager 博客分类: Security Spring 在前面那篇博客有一段配置: <http auto-config=& ...
- Java反射机制可以动态修改实例中final修饰的成员变量吗?
问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...
- web文档在线阅览
之前遇到很多各种文档在线阅览的需求,也有不少朋友经常问我这种需求的实现方案,大致试了一下网上的一些比较主流的推荐方案,但都不尽如人意,这里有一个比较全面的总结,需要的朋友可以根据自己的需求到这里查看, ...
- 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 ...
- 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+ ...
- dinic模板
procedure addedge(u,v,cap:longint); begin sid[tot].u:=u; sid[tot].v:=v; sid[tot].cap:=cap; sid[tot]. ...
- android服务之MP3播放(2)
该播放器将会直接从网络上获取资源进行播放,并提供进度条显示的功能 布局文件 布局文件中使用Seekbar组件来显示进度条 <?xml version="1.0" encodi ...
- IOS -- 获取本地图片和网络图片的大小size
// 获取图片的size CGSize size = [UIImage imageNamed:@"regStep2_sex"].size; 获取网络图片的尺寸: // 根据图片ur ...