Discuz! 6.x/7.x 全局变量防御绕过导致命令执行
2024-08-24 20:12:59
https://www.secpulse.com/archives/2338.html
模拟register_globals功能的代码,在GPC为off时会调用addslashes()函数处理变量值,但是如果直接使用$_GET/$_POST/$_COOKIE这样的变量,这个就不起作用了,然而dz的源码里直接使用$_GET/$_POST/$_COOKIE的地方很少,存在漏洞的地方更加少:(
不过还有其他的绕过方法,在register_globals=on下通过提交GLOBALS变量就可以绕过上面的代码了.为了防止这种情况,dz中有如下代码:
if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
exit('Request tainting attempted.');
}
这样就没法提交GLOBALS变量了么?
$_REQUEST这个超全局变量的值受php.ini中request_order的影响,在最新的php5.3.x系列中,request_order默认值为GP,也就是说默认配置下$_REQUEST只包含$_GET和$_POST,而不包括$_COOKIE,那么我们就可以通过COOKIE来提交GLOBALS变量了:)
最新文章
- -webkit-appearance、sselect
- StreamReader和StreamWrite和FileStream区别和用法
- Scrum Meeting---Four(2015-10-28)
- HighChart 实现从后台取数据来实时更新柱状和折线组图
- C++ Variables and Basic Types Notes
- JS--Div中数据滚动到最后一条重新从头开始滚动
- 从零开始学C++之运算符重载(三):完善String类([]、 +、 += 运算符重载)、>;>;和<;<;运算符重载
- 数据库中的null问题
- 关于ios 推送功能的终极解决
- TJ4运行环境
- 《xxx系统》可用性与易用性功能增加
- 官方Canvas API文档
- jquery中innerwidth,outerwidth,outerwidth和width的区别
- Alpha、伪Beta 发布个人感想与体会
- Error: 实例 ";ddd"; 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance 6f60bc06-fcb6-4758-a46f-22120ca35a71.].
- 使用Puppeteer进行数据抓取(三)——简单的示例
- 每日英语:Singles Day in China
- unity生成Android apk
- node 应用集合
- Softwaretechnik