CVE-2020-10560 OSSN任意文件读取漏洞复现


CVE-2020-10560 OSSN任意文件读取漏洞,问题出现在Open Source Social Network(OSSN)5.3及之前版本中。攻击者可通过对Site_Key实施暴力破解攻击来为components/OssnComments/ossn_com.php和libraries/ossn.lib.upgrade.php插入特制的URL,然后利用该漏洞,理论上可以读取任意文件内容。

在测试过程中发现有些文件(如/etc/hostname)并不能读取出原始值。

实验环境

kali,docker

环境搭建

使用docker搭建漏洞复现环境。首先下载OSSN环境。

$ git clone https://github.com/kevthehermit/CVE-2020-10560.git
$ docker-compose up --build

等待一段时间,不再继续往下运行时在新终端中查看是否完成。

浏览器访问localhost,如下图所示。点击页面最下面的next。

继续next,然后填写数据库信息和网站信息,数据库信息参照下图,或刚才git clone到的readme.md文件,网站信息随意填。

填写好后,点击Install,下一步是创建管理员账户,信息随意填。然后环境搭建完成,会自动跳转到登录界面,暂时先不需要登录。下一步是获取site_key的值。由于我们是在本地使用docker搭建的复现环境,因此可以直接查询数据库来获取site_key的值。刚才应该已经看到,同时还有一个mysql的docker镜像在运行。我们进入这个镜像来查询。

$ docker exec -it dockerID bash
mysql -uossn -possn
use ossn;
select value from ossn_site_settings where name="site_key";

查询到的值为709a609e。

漏洞复现

在刚才git clone下来的文件中有poc.py文件,使用python3运行。格式如下:

python poc.py site_key 要读取的文件 http://IP

如图所示,已读取到/etc/passwd和/etc/hosts的内容。

读取/etc/hostname显示的并不是原始值(可能是经过加密的值):


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
  目录