BUGTRAQ ID: 38143 JDownloader是专为Rapidshare等站点设计的网盘下载工具。 JDownloader在下载过程中所传输的密钥可能为明文或JavaScript代码,之后在Mozilla Rhino Javascript实现中执行。以下是相关代码: (plugins/JDExternInterface.jar/JDExternInterface.java): String jk = Encoding.urlDecode(request.getParameters().get("jk"), false); [...] Context cx = Context.enter(); Scriptable scope = cx.initStandardObjects(); String fun = jk + " f()"; Object result = cx.evaluateString(scope, fun, "<cmd>", 1, null); key = JDHexUtils.getByteArray(Context.toString(result)); Context.exit(); 这里所初始化的默认上下文允许未加任何限制的执行JavaScript,而JavaScript可以导入和使用任意Java库。 在发送表单数据后,JDownloader会请求添加到外部站点或应用的链接(具体取决于所传输的Referer/Source和User- Agent),用户确认后就会执行JAVA代码。 JDownloader < 0.9.334 厂商补丁: JDownloader ----------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://jdownloader.org/home/index?s=lng_en
BUGTRAQ ID: 38143 JDownloader是专为Rapidshare等站点设计的网盘下载工具。 JDownloader在下载过程中所传输的密钥可能为明文或JavaScript代码,之后在Mozilla Rhino Javascript实现中执行。以下是相关代码: (plugins/JDExternInterface.jar/JDExternInterface.java): String jk = Encoding.urlDecode(request.getParameters().get("jk"), false); [...] Context cx = Context.enter(); Scriptable scope = cx.initStandardObjects(); String fun = jk + " f()"; Object result = cx.evaluateString(scope, fun, "<cmd>", 1, null); key = JDHexUtils.getByteArray(Context.toString(result)); Context.exit(); 这里所初始化的默认上下文允许未加任何限制的执行JavaScript,而JavaScript可以导入和使用任意Java库。 在发送表单数据后,JDownloader会请求添加到外部站点或应用的链接(具体取决于所传输的Referer/Source和User- Agent),用户确认后就会执行JAVA代码。 JDownloader < 0.9.334 厂商补丁: JDownloader ----------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://jdownloader.org/home/index?s=lng_en