【PHP项目审计】MetInfoCMS漏洞审计

admin 2023年4月27日18:12:27评论61 views字数 1212阅读4分2秒阅读模式

1、环境搭建

使用PHPStudy环境+MetInfo5.0搭建,将网站源码放入网站根目录,访问安装:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

将网站源码放入Seay代码审计工具扫描可能存在漏洞的关键字页面,然后通过白盒加黑盒的方式挖掘漏洞:

【PHP项目审计】MetInfoCMS漏洞审计

配置文件 /include/common.inc.php 29行将$_request变量传递过来的参数和值注册为变量,这种双$$符号的写法造成变量覆盖漏洞,但这里被覆盖的变量$$key没有被危险函数引用所以没有危害:

【PHP项目审计】MetInfoCMS漏洞审计


2、SQL注入漏洞

打开Seay扫描到可能存在SQL注入漏洞的页面源码/about/show.php和网页,看到$id变量没有经过过滤直接带入数据库语句执行:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

将网页url带入sqlmap工具检测是否真的存在sql注入漏洞,看到回显存在 布尔判断注入、时间延迟注入、union联合查询注入三种注入类型:

sqlmap -u "http://192.168.19.131/about/show.php?lang=cn&id=22" --random-agent --batch

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

漏洞原理研究,使用var_dump()函数查看传入变量的值,看到$id变量从/include/common.inc.php页面的GET请求获取值后没有经过过滤就带入get_one()函数执行sql语句,导致了sql注入漏洞:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计


3、文件包含漏洞

打开Seay扫描到可能存在SQL注入漏洞的页面源码/about/index.php和网页,看到包含/include/module.php源码和$module变量指定的文件源码:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

追踪/include/module.php页面源码,查找$module变量看到当$fmodule变量不等于7时才会对$module变量进行验证,也就是说$fmodule=7就可以指定$module包含任意文件:

【PHP项目审计】MetInfoCMS漏洞审计

在/include/module.php页面源码看到包含了同目录下的common.inc.php文件源码,$fmodule变量和$module变量的值由该页面传入:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

修改/about/index.php页面,使用var_dump()函数尝试输出$fmodule变量和$module变量的默认值,看到默认值分别为整型1和字符串show.php

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

使用GET请求对$fmodule变量和$module变量进行覆盖,查看回显看到可以成功覆盖:

【PHP项目审计】MetInfoCMS漏洞审计

登入网站后台,上传一个压缩包,压缩包里的文件是一句话木马:

【PHP项目审计】MetInfoCMS漏洞审计

【PHP项目审计】MetInfoCMS漏洞审计

分析网站目录结构发现上传文件目录是根目录下的upload文件夹,通过上传文件回显看到上传后文件重命名为20220401_222657.zip:

【PHP项目审计】MetInfoCMS漏洞审计

使用zip://伪协议覆盖$module变量包含上传的压缩包20220401_222657.zip,然后使用#号解压出压缩包里有恶意php代码的shell.txt文件,包含成功后可以执行任意系统命令:

【PHP项目审计】MetInfoCMS漏洞审计



原文始发于微信公众号(ZackSecurity):【PHP项目审计】MetInfoCMS漏洞审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月27日18:12:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【PHP项目审计】MetInfoCMS漏洞审计http://cn-sec.com/archives/1695227.html

发表评论

匿名网友 填写信息