暮年|代码审计入门之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等平台直接进行解密、而且加密不可逆 。 相关实现方法如下:
那么怎么办呢?根据网上众多案例 , 我们可以总结发现 , 由java开发的项目大部分都存在由第三方组件所导致的漏洞 。 我们来看看这套程序引用了哪些第三方组件呢 。 通过IDEA我们可以快速的列出我们当前工程所引入的第三方组件包 。
我们看到了两个熟悉的组件 , druid和fastjson 。 druid是阿里巴巴开源平台上一个数据库连接池实现 , 它结合了C3P0、DBCP、PROXOOL等DB池的优点 , 同时加入了日志监控 , 可以很好的监控DB池连接和SQL的执行情况 。 而fastjson则不需要介绍了 。 大家都很熟悉了 , 主要用来处理json数据 。
根据个人了解,Druid目前是不存在相关漏洞的 。 但是如果开发者配置不当就可以造成未授权访问 , 从而导致相关敏感信息泄露 。 我们来看看web.xml文件
url-pattern 标签中的值是要在浏览器地址栏中输入的 url , 可以自己命名 , 这个 url 访问名为 servlet-name 中值的 servlet
开发者直接配置了映射关系 。 直接访问url+/druid/ 就可以访问到durid的控制台 , 在控制台可以直接获取到当前的一些session信息 , 还可以看到一些JDBC连接信息以及其他的敏感信息 。
这一堆session并不是所有都是有效的 , 具体大家可以抓个包 。 然后用burp爆破一下 。
Payload:
0x03:任意文件上传系统本身提供了一个文件管理的功能 , 地址为: 。 通过该功能可以对上传文件夹内部的文件进行管理 , 包括移动 , 复制 , 上传 , 删除 , 重命名等 。
我们找到相关代码 , 看看功能是如何实现的 , 是否存在安全问题
从代码逻辑我们可以看到上传过程中完全没有限制上传文件类型以及文件后缀 , 没有任何安全过滤措施 。 那么我们直接上传webshell文件即可 。 而且文件名可控 , 就连我们的写入路径也是可控的 。
推荐阅读
- 叙说娱乐|与癌症抗争,终究三任前妻没有送他,高凌风暮年心酸
- 轻拔琴弦|Reactor如何规定,混淆保护需正确命名!看.NET代码保护工具.NET
- 不能忍,1行代码竟然改了10天......
- ECCV 2020 | 空间-角度信息交互的光场图像超分辨,性能优异代码已开源
- 快芯网|【一周热点芯闻】苹果重夺市值全球第一!传华为、联发科、高通等50多家科技公司源代码被泄露
- 刚刚发布了2.0版本,只需要写上几行Python代码
- 贵州人大|把钱花在刀刃上!省人大常委会组成人员审议预算报告和审计工作报告
- 二狗聊科技|初学者如何更好自学Python代码?
- 产业气象站 还让我手动写个HTTP协议代码,三次握手和四次挥手说完了
- 暮年|微软Surface Duo拥有顶部状态栏设计/较厚的边框