大汉版通系统文件上传无限制getshell

0x01 漏洞的文件
/lm/sys/opr_uploadimg.jsp
造成漏洞的部分代码
[php]
if(action.equals("upload")){

//构造上传类,传入上传的路径

CommonUploadFile upload = new CommonUploadFile( strDictionary);

upload.setM_nLimitsize(50); //设置文件总大小

upload.setM_nFilesize(10); //设置单个文件大小

upload.setM_filetype("gif"); //设置允许上传文件类型

//上传操作

boolean b = upload.uploadFile(request);

Convert c = new Convert();

//上传成功

if(b){

out.println("
上传成功!");

String[] files = upload.getAllFileName();

//打印文件名称

for (int i=0;i

String filename = files[i];

File file = new File(strDictionary + filename);

c.copyFile(strDictionary + filename,strDictionary_img+img);

}

}else{

out.println("
上传失败,请检查文件大小和文件类型是否正确!");

}

info += "

";

}
[/php]
其实这段代码表面上看起来安全性还可以,通过
upload.setM_filetype("gif"); //设置允许上传文件类型
限制了只能上传gif格式的文件,然而该段代码却有一个严重的逻辑漏洞:
c.copyFile(strDictionary + filename,strDictionary_img+img);
将上传的gif文件通过copyFile函数copy 到strDictionary_img+img,来看看img参数是怎么来的
String img = request.getParameter("img");
很明显是用户提交的参数,那么用户提交img = XXXXX.jsp shell不就到手了

0x02 漏洞证明

打开http://www.xxxx.gov.cn//lm/sys/opr_uploadimg.jsp
上传任意gif文件,抓包修改img参数,如下
1
点击GO,即可在images 目录下生成shell.jsp,可成功连接:
11

4 条评论

  1. terminal

    求分享啊 大神

  2. terminal

    :eek: 大神 莫这样。。

  3. terminal

    :?: 大神, 这是哪个版本的 在chinaz下了个 咋没看到这个文件呢?

    1. 0day5
      @terminal

      你猜,哈哈哈哈~

发表评论