-
分析
某ERP系统开源版本地址:https://gitee.com/yimiaoOpen/nodcloud
开审!!!!!
1.在恢复备份功能点,可调用restore方法从数据库备份文件中恢复数据。
2.查看restore方法,接受$filename参数调用parseSQL方法解析文件
3.紧接着查看parseSQL方法,用于解析SQL文件,过滤空行、注释、连接SQL语句什么的。
4.到这可以看出一些代码处理逻辑的问题,对传入的文件名未做过滤,可以利用../去进行目录穿越;在parseSQL方法解析传入的文件时,不会对文件后缀进行校验,只要存在该文件便进行SQL处理,最终执行文件中的SQL语句。
-
小小插曲
该漏洞需要找到一个上传文件功能点,来进行组合利用。步骤如下:
上传恶意SQL文件>>通过恢复备份功能来执行恶意SQL语句
1.想着随随便便传个jpg就可以了,但是返回error。
2.返回去瞅瞅代码,发现检验了文件头,利用GIF89a绕过之后,遇到新的问题就是GIF89a会导致文件内容不能被正确解析为SQL语句。
3.跟进代码,发现好在并不是所有后缀都进行了内容校验。
-
完整实现
具体实现,MySQL日志写shell。
set global general_log=on;
set global general_log_file='hnggnb.php';
select '' ;
-
限制
1.是后台漏洞
2.需要绝对路径
3.需要开启日志的权限
原文始发于微信公众号(雁行安全团队):某ERP系统开源版本审计
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论