暮年|代码审计入门之Jeeplus代码审计( 二 )


/a/sys/user/validateMobile?mobile=13588888888'and (updatexml(1,concat(0x7e,(select user()),0x7e),1))#
POST:
/a/sys/register/registerUser
roleName=wangba&mobile=13300990099'and (updatexml(1,concat(0x7e,(select user()),0x7e),1))%23&randomCode=2131&loginName=test1&password=123123&confirmNewPassword=123123&ck1=on
通过全局搜索发现系统还有很多地方采用了${}这种写法 。 这里就不一一标注出来了 。
0x02:第三方组件导致的敏感信息泄露前面我们虽然挖掘到了SQL注入 , 但是该系统采用魔改的算法进行加密 , 通过注入查出来的密码无法直接在MD5等平台直接进行解密、而且加密不可逆 。 相关实现方法如下:
暮年|代码审计入门之Jeeplus代码审计
那么怎么办呢?根据网上众多案例 , 我们可以总结发现 , 由java开发的项目大部分都存在由第三方组件所导致的漏洞 。 我们来看看这套程序引用了哪些第三方组件呢 。 通过IDEA我们可以快速的列出我们当前工程所引入的第三方组件包 。
暮年|代码审计入门之Jeeplus代码审计我们看到了两个熟悉的组件 , druid和fastjson 。 druid是阿里巴巴开源平台上一个数据库连接池实现 , 它结合了C3P0、DBCP、PROXOOL等DB池的优点 , 同时加入了日志监控 , 可以很好的监控DB池连接和SQL的执行情况 。 而fastjson则不需要介绍了 。 大家都很熟悉了 , 主要用来处理json数据 。
根据个人了解,Druid目前是不存在相关漏洞的 。 但是如果开发者配置不当就可以造成未授权访问 , 从而导致相关敏感信息泄露 。 我们来看看web.xml文件
暮年|代码审计入门之Jeeplus代码审计
暮年|代码审计入门之Jeeplus代码审计
url-pattern 标签中的值是要在浏览器地址栏中输入的 url , 可以自己命名 , 这个 url 访问名为 servlet-name 中值的 servlet
开发者直接配置了映射关系 。 直接访问url+/druid/ 就可以访问到durid的控制台 , 在控制台可以直接获取到当前的一些session信息 , 还可以看到一些JDBC连接信息以及其他的敏感信息 。
暮年|代码审计入门之Jeeplus代码审计
这一堆session并不是所有都是有效的 , 具体大家可以抓个包 。 然后用burp爆破一下 。
Payload:
0x03:任意文件上传系统本身提供了一个文件管理的功能 , 地址为: 。 通过该功能可以对上传文件夹内部的文件进行管理 , 包括移动 , 复制 , 上传 , 删除 , 重命名等 。
暮年|代码审计入门之Jeeplus代码审计我们找到相关代码 , 看看功能是如何实现的 , 是否存在安全问题
从代码逻辑我们可以看到上传过程中完全没有限制上传文件类型以及文件后缀 , 没有任何安全过滤措施 。 那么我们直接上传webshell文件即可 。 而且文件名可控 , 就连我们的写入路径也是可控的 。
暮年|代码审计入门之Jeeplus代码审计


推荐阅读