代码审计入门之Jeeplus代码审计
来源:岁月联盟
时间:2020-01-29


url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命名,这个 url 访问名为 servlet-name 中值的 servlet
开发者直接配置了映射关系。直接访问url+/druid/ 就可以访问到durid的控制台,在控制台可以直接获取到当前的一些session信息,还可以看到一些JDBC连接信息以及其他的敏感信息。

这一堆session并不是所有都是有效的,具体大家可以抓个包。然后用burp爆破一下。
Payload:
http://127.0.0.1/druid/websession.html
0×03:任意文件上传
系统本身提供了一个文件管理的功能,地址为:http://127.0.0.1/a/sys/file。通过该功能可以对上传文件夹内部的文件进行管理,包括移动,复制,上传,删除,重命名等。

我们找到相关代码,看看功能是如何实现的,是否存在安全问题
从代码逻辑我们可以看到上传过程中完全没有限制上传文件类型以及文件后缀,没有任何安全过滤措施。那么我们直接上传webshell文件即可。而且文件名可控,就连我们的写入路径也是可控的。

根据相关参数信息,我们直接构造上传即可,或者登录后直接在文件管理处上传文件也可以。
前面我们挖掘到session信息泄露。在这里我们没有拿到管理员密码的前提下可以替换session来上传我们的shell。达到getshell的目的

0×04:任意文件下载
文件管理功能还提供了文件下载功能,根据以往经验来看此处很有可能存在任意文件下载,我们继续往下看代码。

这里先定义返回数据类型,在实例化对象,最后读取文件
逻辑上并没有做任何安全限制,例如过滤…等,导致我们可以跨目录读任意文件。直接构造参数读就完事了。

0×05:总结
整体来看这套系统存在的安全问题很多,并没有官网所描述的那样安全,还有很多问题。有很多漏洞都是由于业务功能考虑不全所导致的,可能开发者也没有想到这些功能所带来的危害,所以才会出现这些问题。
在日常渗透过程中,所遇到的由SSM框架开发的系统还是有很多的。大家如果拿到源码不妨试着看一下,说不定会有意外的收货及突破。这篇文章有很多不足,写的也很浅显。只做抛砖引玉。欢迎各位大佬多多指正。
上一页 [1] [2]