PHP的strcmp函数引发的安全问题
2016-12-22 00:09
369 查看
在官方的文档有这么一端说明:
大概意思就是5.3的之前和之后版本在使用strcmp比较数组和字符串时候的差异。
在5.3的版本之后使用这个函数比较会返回0,太令人迷恋了。。。
这样一段代码,原本的意图是输入Firebroo才能获得权限,但是在5.3版本之后捏,You just need input an array ,like this(?password[]=1)
看图
跳过了验证,少年,上吧。。
[原文地址]
http://lcx.cc/?i=4244
Note a difference between 5.2 and 5.3 versions echo (int)strcmp('pending',array()); will output -1 in PHP 5.2.16 (probably in all versions prior 5.3) but will output 0 in PHP 5.3.3 Of course, you never need to use array as a parameter in string comparisions.
大概意思就是5.3的之前和之后版本在使用strcmp比较数组和字符串时候的差异。
在5.3的版本之后使用这个函数比较会返回0,太令人迷恋了。。。
<?php #$a='Hello world!'; $password=$_GET['password']; #$a=True; #echo gettype($a); if(strcmp('Firebroo',$password)){ echo 'NO!'; }else{ echo 'YES!'; } #echo ord('a'); ?>
这样一段代码,原本的意图是输入Firebroo才能获得权限,但是在5.3版本之后捏,You just need input an array ,like this(?password[]=1)
看图
跳过了验证,少年,上吧。。
[原文地址]
http://lcx.cc/?i=4244
相关文章推荐
- php命名空间划重点
- 本地开发phpmyadmin去登陆验证
- TODO:Laravel增加验证码
- YII1.1框架配置
- Beyond Compare文件上传FTP差异问题怎么解决
- PHP----对比session和cookie
- Tpc-ds测试以及结果
- 深入理解PHP的运行模式
- php 生成静态页面函数
- 使用Composer安装最新Laravel和thinkphp5
- php中使用fsockopen实现异步请求
- thinkphp3.2.3连接sqlserver2008出现PDO::SQLSRV_ATTR_ENCODING错误解决
- laravel查看sql语句
- Laravel子查询
- ubuntu 14.04 搭建vsftpd
- php 全局变量global的使用方法
- PHP---浏览器禁用cookie后如何使用session
- PHP配置(一)
- phprm=>20161221
- php学习历程