漏洞作者: 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或其它的一些系统代码和上面就不同,有比较大差别)
结合里面的相关参数,整理出一个通用的exp,如下(比较简陋):
[php]
[/php]
http://www.xxx.gov.cn/jphoto/setup/ 这是jphoto的setup目录,先用exp提交数据:
提交成功后,提示配置文件修改完成,重启服务。
Exp里面是把密码设置为123456的
<input type="hidden" name="adminpwd" value="123456" />
再回到登录界面,使用admin/123456登录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论