大汉jbook、jget、jvideo、source、jphoto和lm的通用越权漏洞

漏洞作者: wefgod

jbook=订阅系统(好像是) source=数据源采集系统 jget=信息采集系统 jvideo=视频系统 jphoto=图片系统 lm=互动系统 大概就是这样。

详细说明:

某个同名文件虽然代码大同小异,但是都产生了同样的越权漏洞,可以重置这几个系统的安装目录相关配置信息。

漏洞证明:

[php] <% String strRealPath = application.getRealPath(""); //文件路径 String strDictionary = application.getRealPath("") +"/"; //构造上传类,传入上传的路径 CommonUploadFile upload = new CommonUploadFile(strDictionary); //上传操作 boolean b = upload.uploadFile(request); String jndi = upload.getFormValue( "jndi"); String product = upload.getFormValue( "product"); ………… …… String servername = upload.getFormValue( "servername"); servername = servername.toLowerCase(); //String jndi = upload.getFormValue( "jndi"); String adminpwd = upload.getFormValue( "adminpwd"); String debug1 = upload.getFormValue( "debug1"); int nDebug = Convert.getStringValueInt( debug1 ); //String dbtype = upload.getFormValue( request,"dbtype"); String dbtypename = upload.getFormValue( "dbtypename"); dbtypename = dbtypename.toLowerCase(); //获取系统参数 int b_email = Convert.getStringValueInt(upload.getFormValue("openmailbook")); int b_mobile = Convert.getStringValueInt(upload.getFormValue("openmobilebook")); int logsavedate = Convert.getStringValueInt(upload.getFormValue("logsavetime")); String cleartime = Convert.getValue(upload.getFormValue("cleartime")); String sysurl = Convert.getValue(upload.getFormValue("sysurl")); //写sysconfig.xml配置文件 ConfigService configService = new ConfigService(); SysConfigEntity sysConfig = new SysConfigEntity(); sysConfig.setOpenmailbook(b_email); sysConfig.setOpenmobilebook(b_mobile); sysConfig.setLogsavetime(logsavedate); sysConfig.setCleartime(cleartime); sysConfig.setUrl(sysurl); configService.saveSysConfig(sysConfig); String sso = upload.getFormValue( "sso"); String kick = upload.getFormValue("kick"); String validate = upload.getFormValue("validate");………… …… //写merpserver.ini配置文件 String iniPath = strRealPath + "/WEB-INF/ini/merpserver.ini"; com.hanweb.common.util.IniFile ini = new com.hanweb.common.util.IniFile( iniPath ); ini.readIni(); ini.setIniValue("WebServer",servername); ini.setIniValue("AppPath",jndi); ini.setIniValue("DBType",dbtypename); ini.setIniValue("AdminPW",adminpwd); ini.setIniValue("loglevel",debug1); ini.setIniValue("sso",sso); ini.setIniValue("kick",kick); ini.setIniValue("validate",validate); ini.writeIni(); [/php] 关键的几步代码基本如上,几个系统类似(VC或其它的一些系统代码和上面就不同,有比较大差别) 04145503629d4e4a5be0409950df2ddd702c6a89 结合里面的相关参数,整理出一个通用的exp,如下(比较简陋): [php]
[/php] 先用jphoto来做例子。 041455324d5628c82531ca50a3e4d1b20f4637a7   http://www.xxx.gov.cn/jphoto/setup/ 这是jphoto的setup目录,先用exp提交数据: 04145553473316efb90e9dcbdbe6d960613e32ad 提交成功后,提示配置文件修改完成,重启服务。 Exp里面是把密码设置为123456的 <input type="hidden" name="adminpwd" value="123456" /> 再回到登录界面,使用admin/123456登录 04145611bb94002f82e984dab598afd774c5da85 其它系统就不多做演示了,以免影响网站的业务政策运行。但是漏洞都是存在的,希望一次性可以修复掉。

3 条评论

  1. 7ky

    :evil: :evil: 你这exp 能用吗?

  2. x

    能getshell 吗

    1. 0day5
      @x

      能不逗吗?看图呗~

发表评论