拓尔思某系统越权操作大集合及GETSHELL

/*
*说明:
*Copyright ©2004 - 2006 TRS 不受影响
*Copyright ©2004 - 2008 TRS 不受影响
*以及部分二次开发的不受影响
*--------------------------------------
*越权可查看用户信息,几个案例用户加加都有上百万了~ 
*/

程序名称:TRS身份服务器单点登录系统
漏洞类型:越权操作 & 任意文件上传GETSHELL
漏洞文件:
越权操作的(多少个点我也没数,反正就那么多):

/ids/admin/sys/system/editSysParaCfg.jsp   系统参数设置
/ids/admin/sys/system/editRegCfg.jsp     系统注册相关参数设置 (可改接收邮箱...)
/ids/admin/sys/system/editRealNameCfg.jsp  实名认证相关参数设置(可设置上传路径及上传类型)
/ids/admin/sys/system/editLoginCfg.jsp   用户登录相关参数配置
/ids/admin/sys/verifyCode/editVerifyCodeParaCfg.jsp  验证码参数设置 
/ids/admin/sys/navigation.jsp          系统配置 
/ids/admin/notifycation/list.jsp       邮件发送列表
/ids/admin/notifycation/detailMessage.jsp?id=xxx  通知模块(里面都是注册密码明文)
/ids/admin/user/list.jsp    用户列表(可重置密码)
/ids/admin/ldap/domain/config_dir.jsp   LDAP目录设置信息 
/ids/admin/ad/domain/add.jsp  增加域啥信息
/ids/admin/sys/database/viewDbInfoCfg.jsp 查看数据库连接
/ids/admin/sys/http/edit.jsp HTTP参数设定
ids/admin/sys/accessPermission/edit.jsp   访问控制全局参数设定
/ids/admin/sys/auth/editCACfg.jsp    证书参数设置
/ids/admin/sys/customfield/addColumn.jsp?boName=User   添加属性
/ids/admin/sys/customfield/list.jsp  属性列表
/ids/admin/sys/group/editGroupAttributesMapping.jsp   机构参数设置
/ids/admin/sys/sso/edit.jsp  跨域单点登录参数设定
/ids/admin/sys/synchronize/synchronizationConfig.jsp  同步服务器参数设定
/ids/admin/sys/synchronize/listSynchronizer.jsp  同步服务器列表
/ids/admin/coapp/viewUserSynchronization.jsp  系统[ids]的用户同步配置
/ids/admin/archivelog/config.jsp   是否日志归档

任意文件上传:

account/uploadAuthInfo.jsp

数等一系列管理操作;普通用户有一个上传身份证的页面,*****

if (this.realNameAuthenticationService.isApply(userName)) {//如果上传过,文件名用用户名命名,文件名可控,导致可截断上传
      UserRealNameInfo uRealNameInfo = null;
      uRealNameInfo = this.realNameAuthenticationManager.find(userName);
      uploadFile = this.imageFileManager.find(uRealNameInfo.getUploadFileId());
      uploadFile.setNewFileName(userName + "." + fileType);
      uploadFile.setUploadTime(System.currentTimeMillis());
      uploadFile.setOriginalFileName(fileName);
      uploadFile.setFileSize(fileSize);
      uploadFile.setImageUrl(uploadPath);
      uploadFile.setType(type);
      this.imageFileManager.update(uploadFile);
      LOG.debug("update User realName authentication upload file success :" + uploadFile);
    }
    else {
      uploadFile.setNewFileName(userName + "." + fileType);//同上,这里是第一次上传走这里
      uploadFile.setUploadTime(System.currentTimeMillis());
      uploadFile.setOriginalFileName(fileName);
      uploadFile.setFileSize(fileSize);
      uploadFile.setImageUrl(uploadPath);
      uploadFile.setNewFileName(DateUtil.timeMillisToString(System.currentTimeMillis(), "yyyyMM") + File.separator + uploadFile.getNewFileName());
      uploadFile.setType(type);
      this.imageFileManager.add(uploadFile);
      LOG.debug("add User realName authentication upload file success :" + uploadFile);
    }

因为trs默认上传到/WEB-INF/private/目录下,这里有两种方式来突破,一种是通过文件名来跳转:/../../../username.jsp%00.jpg ,这样就会在/ids/目录下生成shell文件。另一种是通过/ids/admin/sys/system/editRealNameCfg.jsp 实名认证相关参数设置(可设置上传路径及上传类型)配置上传路径,这样只需要文件名username.jsp%00.jpg截断即可,文件是存放在/ids/设置的目录/当前年月/用户名.jsp

默认地址
/ids/admin/login.jsp

用户名密码:trsadmin1/trsadmin1
然后再调用页面直接上传
getshell

发表评论