二.PHP代码审计涉及到的超全局变量

  • A+
所属分类:代码审计

· 

安全帮



出品|安全帮(www.secbang.com)

概述:安全帮专注安全教育

大牛绕过 针对零基础小白

【本章目的】

掌握代码审计中常用的代码调试函数,单引号与双引号之间的区别

【本章原理】

开发中,经常会查看变量的值,因此经常会将变量的值输出到页面以便于查看。这就需

要用到调试函数。


【测试步骤】


· 

· 

1.$GLOBALS--引用全局作用域中可用的全部变量

$GLOBALS全局变量用于在PHP脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP在名为$GLOBALS[index]的数组中存储了所有全局变量。变量的名字就是数组的键。


Demo1. Test.php中定义变量$secbang,值为secbanger。使用echo $GLOBALS['secbang']输出全局变量$secbang的值,对变量$secbang加上$GLOBALS,即定义该变量为全局变量

访问http://localhost/test.php”,显示“secbanger”。


Demo2. 修改tets.php代码,定义了一个名为test()的函数,赋值局部变量$xipu的值为simple,“echo $GLOBALS[‘secbang’]”语句由于使用了$GLOBALS($GLOBALS['var']是外部的全局变量本身),故输出的是test()函数之外定义的全局变量,即$secbang = "secbanger";,所以输出secbanger。

二.PHP代码审计涉及到的超全局变量

· 

2.$_SERVER--服务器和执行环境信息

$_SERVER超全局变量保存关于报头、路径和脚本位置的信息。使用print_r($_SERVER);输出服务器和执行环境信息,下表列出了能够在 $_SERVER中访问的比较重要的元素

二.PHP代码审计涉及到的超全局变量

· 

2.3  $_GET--HTTP GET 变量

· 

2.$_SERVER--服务器和执行环境信息

1.PHP中$_GET$_GET还可以收集URL中的发送的数据。

在浏览器地址栏输入http://localhost/test.php?id=1&key=secbang,回车,这里的$_GET值为从URL中的发送过来的数据。

二.PHP代码审计涉及到的超全局变量

2. $_POST—HTTP POST 变量

PHP $_POST广泛用于收集表单提交method="post"的HTML表单后的表单数据,$_POST也常用于传递变量。

二.PHP代码审计涉及到的超全局变量二.PHP代码审计涉及到的超全局变量

· 


2.$_FILES—HTTP文件上传变量


使用print_r($_FILES);输出文件上传变量信息


新建file.htm文件,代码如下。action="test.php"表示将表单数据提交到test.php页面。method="post"表示提交方法 post。enctype="multipart/form-data"用于表单里有图片上传时确保匿名上载文件的正确编码。使用for 属性规定label标签与Filename表单元素绑定。用于上传文件。定义提交按钮。在浏览器地址栏输入http://localhost/file.htm,回车,单击浏览,选择某一张图片上传。这是跳转到test.php页面,输出上传文件的一些信息,如文件的名字、类型(此处为图片image/png)和大小等。

二.PHP代码审计涉及到的超全局变量

·



· 

2.6  $_COOKIE — HTTP Cookies信息

·

修改代码,先使用echo $ = "secbangers";输出变量$secbang的信息secbangers,再使用print_r ($_COOKIE);输出cookie信息。在浏览器地址栏输入http://localhost/test.php,回车,输出secbangers以及cookie信息。


· 


· 

【实验思考】

·

1.  代码审计用涉及到的全局变量有哪几个?

·


 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: