网站地图    收藏   

主页 > 后端 > 网站安全 >

Espcms V5.6.13.04.22 UTF8 正式版注入漏洞之3/N - 网站安

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 某文件对于从数据库中读取的变量未过滤,放入其他的sql语句中,造成二次sql注入文件\interface\public.php中:$ec_member_username_id = $this-member_cookieview(#39;userid#39;);if ($ec_member_usernam......

某文件对于从数据库中读取的变量未过滤,放入其他的sql语句中,造成二次sql注入
 
文件\interface\public.php中:
 
$ec_member_username_id = $this->member_cookieview('userid');

if ($ec_member_username_id) {

$rsMember = $this->get_member_attvalue($ec_member_username_id);

}

$userid = $ec_member_username_id ? $ec_member_username_id : 0;

$name = $rsMember['alias'] ? $rsMember['alias'] : '';



$sex = $rsMember['sex'] ? $rsMember['sex'] : 0;

$tel = $rsMember['tel'] ? $rsMember['tel'] : '';

$address = $rsMember['address'] ? $rsMember['address'] : '';



$db_field = 'mlvid,userid,name,sex,email,tel,address,isclass,addtime';

$db_values = "$mlvid,$userid,'$name',$sex,'$email','$tel','$address',1,$addtime";

$this->db->query('INSERT INTO ' . $db_table . ' (' . $db_field . ') VALUES (' . $db_values . ')');

 

 
 
关键代码:$address = $rsMember['address'] ? $rsMember['address'] : '';
 
$address是从数据库中获取到当前用户个人信息的详细地址,字段address在数据库中为varchar类型,最长字符数255
 
 
 
字段address可以被用户控制,构造特殊的sql语句

 
先修改个人信息:
 
 
 
再访问如下url:
 
http://127.0.0.1/index.php?ac=public&at=invite&mlvid=999&email=ipp@126.com
 
输出sql语句:


 
修复方案:
 
过滤。。。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论