漏洞概要
关注数(24)
关注此漏洞
漏洞标题:OEcms通用SQL注入一枚(无视全局过滤)
提交时间:2014-11-05 16:22
修复时间:2015-02-03 16:24
公开时间:2015-02-03 16:24
漏洞类型:SQL注射漏洞
危害等级:中
自评Rank:10
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2014-11-05: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-02-03: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
OEcms通用SQL注入一枚(无视全局过滤)
详细说明:
看到LaiX的这个漏洞 WooYun: 代码审计系列9: OEcms 远程代码执行(CSRF) ,然后搜索了一下,没有找到OEcms的其他漏洞,只有一个漏洞?这明显不科学,挖下吧。
OEcms首先对用户的各种输入做了全局过滤,/source/core/run.conf.php
然后在执行sql的时候,很多输入又做了过滤,我没有找到可以绕过’过滤的注入,既然不能绕过,那就不用’了吧,找到了个数字型的注入点,无需考虑’的闭合问题了。
先看代码/source/control/index/buylist.php
看到$id是通过getGet('id')获得的,再看看getGet()
没有进行任何形式的过滤,然后就带入sql执行了
虽然进行了全局过滤,但是仅用daddslashes过滤,对于数字型的注入来说,起不到作用,轻松绕过,注入成功。
注入点在这里:www.xxx.com/index.php?c=buylist&a=dellist&id=2 id存在error-based blind注入
Payload:
正常执行sql语句是这样的
执行注入sql语句
管理员的用户名和密码出来了
漏洞证明:
修复方案:
版权声明:转载请注明来源 路人甲@乌云
漏洞回应