前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络安全自学篇-PHP代码审计(八)

网络安全自学篇-PHP代码审计(八)

作者头像
字节脉搏实验室
发布2020-07-01 14:48:35
4250
发布2020-07-01 14:48:35
举报
文章被收录于专栏:字节脉搏实验室

变量覆盖

攻击者使用自定义的参数去替换应用程序未经过初始化的变量值。

挖掘思路:

文件上传页面覆盖白名单列表 用户注册页面覆盖未初始化的变量导致SQL注入

相关函数:

extract、import_request_variables、parse_str、$$

1、extract函数

代码语言:javascript
复制
 extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] ) : int// array一个关联数组。此函数会将键名当作变量名,值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量,并受到 flags 和 prefix 参数的影响。  EXTR_OVERWRITE,如果有冲突,覆盖已有的变量。prefix附加前缀。第二个参数有三种情况会产生变量覆盖://1、 EXTR_OVERWRITE 如果有冲突,覆盖已有的变量。//2、 EXTR_PREFIX_SAME 如果有冲突,在变量名前加上前缀 prefix。 //3、 EXTR_IF_EXISTS 仅在当前符号表中已有同名变量时,覆盖它们的值。

EXTR_OVERWRITE:

EXTR_PREFIX_SAME:

EXTR_IF_EXISTS:

2、import_request_variables函数(PHP<5.4)

3、parse_str函数

4、$$

变量a可被传入的参数覆盖。

漏洞防范:

1、php.ini中register_globals = OFF 2、使用原始变量数组,入POST、_POST、POST、_GET等 3、不使用foreach变量$_GET变量 4、判断变量是否注册

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档