我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

后续每一期连载都会一一介绍这些漏洞的原理和防御方法。

几个重要的 php.ini 选项:

[全局变量漏洞$]

php>=4.2.0,php.ini选项的默认值默认为Off。

当设置为On时,程序可以从服务器接收各种环境变量,包括表单提交的变量,而由于PHP不必提前初始化变量的值,因此会带来很大的安全风险。

示例1:

//()用于检查当前用户权限。 如果admin将$变量设置为true,那么下面判断这个变量是否为true,然后进行一些管理操作。

 
 
  1. //ex1.php 
  2. if(check_admin()) 
  3. $is_admin=true; 
  4. if($is_admin
  5. do_something(); 
  6. ?> 

这段代码并没有提前将$初始化为False。 如果是On,那么我们可以直接提交,绕过()的验证:

示例2:

 
 
  1. //ex2.php 
  2. if(isset($_SESSION["username"])) 
  3. do_something(); 
  4. else 
  5. echo"您尚未登录!"
  6. ?> 

当=On时,我们提交[]=dodo并拥有该用户的权限。 所以无论为什么,我们必须记住,任何传输的数据都必须仔细验证,变量必须初始化。

安全模式,PHP用于限制对文档的访问,限制对环境变量的访问,控制外部程序的执行。启用

安全模式必须在 php.ini 中设置为 =On

1. 限制文件访问

r =“/路径1:/路径2:/路径3”

不同文件夹之间用冒号分隔

2.限制访问环境变量

=

指定PHP程序可以更改的环境变量的前缀,如:=PHP_。 当该选项的值为空时,PHP 可以更改任何环境变量。

=前缀,用于指定PHP程序无法更改的环境变量。

3.限制外部程序的执行

=

此选项指定的文件夹路径影响 exec、popen 和“``”。

=

不同的函数名之间用逗号分隔。 此选项不受安全模式影响。

用于自动转义PHP程序的输入信息。 所有单引号("'")、双引号(""")、反斜杠("\")和空字符(NULL)都会自动添加。反斜杠转义=On用于将其设置为On,这会影响HTTP请求数据(GET、POST)也可以用它来转义提交的HTTP请求数据,或者去掉转义。

即命令注入攻击,是指黑客通过在输入机制(如缺乏有效验证限制的表单字段)中输入HTML代码来改变动态生成的网页内容的攻击方式。 使用系统命令是一种危险的操作,特别是当您尝试使用远程数据来构造要执行的命令时。 如果使用受污染的数据,就会出现命令注入漏洞。

命令注入攻击

PHP中可以使用以下5个函数来执行外部应用程序或函数

,exec,,,"(相同功能)

函数原型

(, 整数 &)

执行命令

存储执行命令执行后的状态值

exec ( , 数组 & , int & )

执行命令

通过执行命令获取每一行字符串输出

执行命令后存储状态值

无效(,整数&)

执行命令

执行命令后存储状态值

( )

执行命令

漏洞示例

示例1:

 
 
  1. //ex1.php 
  2. $dir = $_GET["dir"]; 
  3. if (isset($dir)) 
  4. echo "
    "

    ("ls-al".$dir); 回声”

    ”;

二维码
扫一扫在手机端查看

本文链接:https://by928.com/579.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线