PopojiCMS远程命令执行漏洞分析

admin 2024年8月14日21:44:31评论14 views字数 1394阅读4分38秒阅读模式
0x01 需自行负责!!!
0x02 环境配置
漏洞来源:
https://www.exploit-db.com/exploits/51982

源码下载地址:

https://github.com/PopojiCMS/PopojiCMS/archive/refs/tags/v2.0.1.zip
‍运行环境:
phpstudy
程序版本:
2.0.1
0x03 漏洞分析

安装完成后需要手动删除一下install.php(我是这样的),他不会自动删除,然后index.php有一个判断规则,如果install.php存在会自动跳转到安装页面。

PopojiCMS远程命令执行漏洞分析

exploit-db给的POC可以看到漏洞所在页面和参数

PopojiCMS远程命令执行漏洞分析

找到对应的代码去搜一下关键字:meta_content,但是并没有搜到,考虑可能是通过动态调用的方法调用的某个文件,然后接收的这个参数。
这里还有个方法,就是直接从根目录去搜索这个关键字,如果系统比较大搜索出来的东西可能比较多,如果系统比较小可能直接就能定位到漏洞代码

PopojiCMS远程命令执行漏洞分析

接下来看下这两个参数,有可能是通过其中某一个参数去动态调用的其他类:?mod=setting&act=metasocial
这里还有另外一个办法就是通读代码,因为访问的是这个文件,那肯定是通过这个文件调用的其他文件去处理的这个请求。
下图可以看到第31行实例化一个PoRequest类,然后用这个类下的get方法去接收mod参数,最后用ucfirst方法将首字符转为大写。
Route.php代码片段

PopojiCMS远程命令执行漏洞分析

然后跟进get方法看下
这里因为上图第35行传参时给filterType参数传递了实参,所以会替换掉下图的false默认参数,这里会走进第45行的if判断。

PopojiCMS远程命令执行漏洞分析

这里filter_input过滤器FILTER_SANITIZE_STRING表示过滤特殊字符等内容,这里POC传递的是setting,没特殊字符还是会原样返回。
然后再继续看route.php
下面的act参数也是一样的 ,接收到后原样返回,主要看下switch里的代码,这里的43行代码,这里得到的是route.php,那就不会走进前面两个case,直接看最后route.php这个代码块

PopojiCMS远程命令执行漏洞分析

前面mod传的是setting,那么131行的if就不会成立,直接看else里的代码

PopojiCMS远程命令执行漏洞分析

下图代码为else内的代码
150行判断文件是否存在,这里拼接完的完整路径为:
../po-content/component/setting/admin_setting.php

PopojiCMS远程命令执行漏洞分析

下图为150行DIR_CON常量的值

PopojiCMS远程命令执行漏洞分析

找下上面的路径文件,这里应该就是真正存在漏洞的代码了

PopojiCMS远程命令执行漏洞分析

再看下route.php那个文件的155行代码,直接include这个文件,那么直接看这个文件,就不继续看route.php的代码里

PopojiCMS远程命令执行漏洞分析

上图的34行,判断了一下是否登录,所以这里判断为后台的漏洞,需要登录才可以利用
然后下面直接搜关键字:meta_content

PopojiCMS远程命令执行漏洞分析

这里就是接收payload的地方了,因为PHP接收到数据后会自动url解码一次,所以这里传递的数据是URL编码的,但是到后面会自动转换回来。
这里我写了个Demo测试:

PopojiCMS远程命令执行漏洞分析

写入的文件内容

PopojiCMS远程命令执行漏洞分析

所以admin_setting.php的1070行会讲恶意的代码写入到PHP文件内。
其实payload那里写正常的代码不用url编码也是可以的,看下Demo

PopojiCMS远程命令执行漏洞分析

 

 

原文始发于微信公众号(琴音安全):PopojiCMS远程命令执行漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月14日21:44:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PopojiCMS远程命令执行漏洞分析https://cn-sec.com/archives/3067035.html

发表评论

匿名网友 填写信息