记录一次代码审计和CVE编号申请(CVE-2022-28090)
1.起因 最开始的起因是源自 去年HVV期间 实在下班后实在没啥事 我就决定来学一下代码审计 ,然后学校教的也是java,so 我决定来学一波代码审计,至于为什么选择jspxcms,emmm,我能说是因为当时百度搜索java cms
出现的第一个结果就是这玩意嘛(笑
在这里要谢谢组里神风师傅给的帮助 ,指路神风师傅的博客
环境依赖
- Windows11
- Jspxcms 源码包 https://gitee.com/jspxcms/Jspxcms 部署至IDEA
部署过程
选择maven
在这里 修改数据库连接的用户名和密码
创建一个 名字为test_jspxcms_release
的数据库 然后 naivcat连接数据库 运行该目录下的sql文件 导入数据 如果启动报错 这里可能要修改为这样
spring.datasource.url=jdbc:mysql://localhost:3306/test_jspxcms_release?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
代码审计中需要注意一些敏感函数 这里我主要说一下SSRF需要注意到的函数
URL.openConnection()
URL.openStream()
HttpClient.execute()
HttpClient.executeMethod()
HttpURLConnection.connect()
HttpURLConnection.getInputStream()
HttpServletRequest()
BasicHttpEntityEnclosingRequest()
DefaultBHttpClientConnection()
BasicHttpRequest()
然后使用IDEA的全局搜索功能 找到一个HttpClient.execute()
在 fetchUrl() 调用了 fetchHtml(),并且这个方法可以直接被 HTTP 访问,而且没有做任何限制。
验证
然后 尝试用特殊协议和http尝试 本地redis未授权 很可惜 利用失败了
CVE编号申请
然后 我第一想法就是可以水一个CVE编号,然后我查询CVE编号
这就尴尬了 然后直至今年三月份 让我出AWD题目的时候 我就把这个搞上去了,后面一细想 我这版本和他不对 而且是在后台,抱着试试的心态开始申请CVE编号
申请流程可以看freebuf里师傅写的教程https://www.freebuf.com/168362.html
不过 这个流程 有一说一真的很慢 在五月份才收到回复
这也是我第一次拿到CVE编号 我觉得还是很有意义的 然后还可以水一篇博客(逃
Comments | NOTHING