前言: 我们在八月的时候就已经陆续收到白帽子提交此框架的相关通用漏洞,我们一直在尝试联系该框架的相关管理人员,经过长时间的尝试联系无果并发现已有相关漏洞被公布出来,经DVP内部讨论决定,将DVP研究员深入挖掘此框架的相关严重漏洞提交至CNVD(国家信息安全漏洞共享平台)并发布此篇文章提醒币圈用户谨慎选择此类交易所。
0x01 漏洞分析
DVP审核收到此通用框架漏洞的时候,发现其是基于POSCMS改版的一套交易所程序,其版本为 v3.2.19,我们本着安全研究的目的,到官网下载了最新的 POSCMS v3.2.0 到本地进行分析。分析得出以下漏洞,并以报送到CNVD(国家信息安全漏洞共享平台)。
一、 SSRF + 任意文件读取 + Getshell
一顿Fuzz后发现这个需要先进行登陆后才能触发的漏洞,但是对于交易所来说这不是问题。程序会自动将读取到的文件保存在 /uploadfile/年月/随机生成的文件名(.) 但不能读取 PHP 文件。
漏洞地址:
/index.php?s=member&c=***&m=*********
POST:
file=文件路径
文件保存路径: /uploadfile/年月/随机生成的文件名(.)
文件读取:
绕过限制读取php文件
尝试读取php文件 “提示远程文件扩展名(php)不允许” 失败了。
本着不能读源码的文件读取不是好的文件读取的原则查看了相关源码。
查看源码后发现它取最后一个点后面的内容为扩展名,当扩展名为php的时候结束并提示错误。尴尬的是 白名单 $ext 里面是空的....空的...的.. . 也就是说点后面有任何内容都会导致远程抓取失败...
往上跟进入dr_catcher_data方法
美滋滋,方法内的两个 if 都支持file:// 协议 于是乎 ?. 或者 #. 就可以绕过限制
成功读取到配置文件 /config/system.php
SSRF :
SSRF 只需要把file 协议改为http协议就好了,自行发挥。
可以看到虽然提示获取远程文件失败但却已经发起了请求
GetShell:
GetShell需要配合 config/system.php 文件中的 SYS_KEY 密钥进行编码,实现后缀名可控的情况下才可以抓取制定后缀文件。
从代码中可以看到,从 $_POST[url] 中接收参数($p[cdoe] 是外部可控的),通过 explode 函数分割字符串成 $size、$ext、$path 变量。
然后,通过 file_put_contents 函数写文件。
跟进 dr_authcode()(diy/dayrui/helpers/function_helper.php) 函数
发现是一个对字符串加解密的函数,关键的一个常量是 SYS_KEY ,而这个常量可以通过上面的文件读取拿到。
这里为 poscms2e****************************2662。
随后通过设置上传后缀白名单为 1|phtml,|0 进行 DECODE 编码,生成:
`0927itRT2tQykJn/9L5SijMOKtFzwjwxJGWtn6L356Zx/vRkMsXQ`
然后携带这个 code 去读取远程文件
自动抓取远程内容并保存到.phtml后缀的文件中
绝对路径:
/uploadfile/年月/随机文件名.phtml
二、 后台GetShell
看到有些小伙伴打XSS + CSRF组合拳添加管理员千辛万苦的进后台,只为看用户信息...
不拿 shell 看着难受... 于是就想着能不能来个XSS + CSRF 拿个Shell 装个13的,结果一顿操作只发现了一处鸡肋的文件包含能拿shell 为什么说鸡肋?因为有点像Discuz! 后台拿shell,繁琐。
大概操作:
内容 ==》 自定义页面 ==》 高级功能 ==》 模板文件参数
存在任意包含 跳跃五个目录到WEB根目录
然后保存访问 /index.php?c=page&id=你生成的ID
开始以为是代码层被截断了,后来发现是数据库字段就给了30个字符...
好在后台可以执行 SQL 语句 我们可以更新一下字段 把字节加大
SQL语句
alter table 表前缀_1_page modify column template varchar(100);
再回来重复刚才的操作
不知各位觉不觉得鸡肋... 反正我觉得要操作数据就蛮鸡肋的...
三、 彩蛋 前台 SQLi 注入一枚
前台注册登陆后
/index.php?s=member&c=*****&m=*****&*****%22and%20exp(~((select%20*%20from(select%20user())a)))--%20ss--%20DCen&ext=
密码格式 md5(md5($password).$salt) // $saLt = 十位随机字母+数字
0x02 漏洞影响
此类漏洞影响使用POSCMS框架 v3.2.20版本的网站和使用此框架进行二次开发的交易所。
-
https://bk***.top/
-
https://www.o***x.info
-
https://www.m******x.com
-
https://c*****x.com/
-
https://c****t.net/
-
https://www.b****x.io
-
https://www.c*****x.top
-
https://www.b******q.vip/
-
http://m******x.io/
-
https://te***********y.com
-
https://www.fu*********ex.cc/
(扫码加入微信社群)
长按二维码
就可以关注公众号哦~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 交易所安全测试:信息收集
- 交易所安全测试:安全审计指南
- 漏洞再藏交易所,黑客盯上行情区
- 资源就是生产力,使用BiClub交易所资源可免交易手续费
- 因为它,中心化交易所要慌(黄)了吗?
- [译] 去中心化交易所 (DEX) 协议整理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning Python, 5th Edition
Mark Lutz / O'Reilly Media / 2013-7-6 / USD 64.99
If you want to write efficient, high-quality code that's easily integrated with other languages and tools, this hands-on book will help you be productive with Python quickly. Learning Python, Fifth Ed......一起来看看 《Learning Python, 5th Edition》 这本书的介绍吧!