0x01:“==”和“===”

PHP中有两种比较符号,“==”与“===”。“==”我们称之为等值符,当等号两边为相同类型时,直接比较值是否相等;当等号两边类型不同时,先转换为相同的类型,再对转换后的值进行比较,如果比较一个数字和字符串或者涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照常数值进行比较。

<?php
var_dump("admin"==0); //true
var_dump("1admin"==1); //true
var_dump("admin1"==1) //false
var_dump("admin1"==0) //true
var_dump("0e123456"=="0e4456789"); //true
?>
当一个字符串欸当作一个数值来取值,其结果和类型如下:如果该字符串没有包含'.','e','E'并且其数值值在整形的范围之内
该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0
0x02:"array_search"与is_array"绕过
is_array:判断传入的是不是一个数组,array_search(x,$数组):在数组中寻找与指定值(x)相等的值,array_search函数 类似于"==",会进行类型的转换
<?php
if(!is_array($_GET['test'])){exit();}
$test=$_GET['test'];
for($i=0;$i<count($test);$i++){
if($test[$i]==="admin"){
echo "error";
exit();
}
$test[$i]=intval($test[$i]);
}
if(array_search("admin",$test)===0){
echo "flag";
}
else{
echo "false";
}
?>
在上面的栗子中,我们可以传入test[]=0来进行绕过,首先test是一个数组,符合is_array的判断,然后test=0;在array_search中0==admin为true,绕过了array_search。

0x03:strcmp漏洞绕过
strcmp是比较两个字符串,str1<str2,返回<0,str1>str2,返回>0,相等时返回等于0
 <?php
$password="***************"
if(isset($_POST['password'])){ if (strcmp($_POST['password'], $password) == 0) {
echo "Right!!!login success";n
exit();
} else {
echo "Wrong password..";
}
?>
上述代码中要求我们post一个password值,要与给定的password变量的值相等,但我们不知道password变量的值是什么!这怎么办呢?
stamp期望传入的值是字符串类型,但如果我们传入数组类型会怎么样呢?
我们传入 password[]=xxx 可以绕过 是因为函数接受到了不符合的类型,将发生错误,但是还是判断其相等
(ps:本人太菜,若有错误的地方欢迎大佬随时责骂。。。。xixixii)

最新文章

  1. mstsc连接服务器时如何避免每次在登陆窗口输入密码(rdp passwd decrypted )
  2. android sqlite datetime demo
  3. [NOIP2015] 提高组 洛谷P2615 神奇的幻方
  4. web_custom_request应用示例
  5. Android M新特性之Behavior Changes
  6. BEA-150021 - The admin server failed to authenticate the identity of the user username starting the managed server.
  7. IE11之F12 Developer Tools--控制台工具(Console)
  8. Python文件操作之简化代码
  9. JavaScript实现Ajax小结
  10. js回调
  11. 利用windows系统ftp命令编写的BAT文件上传[转]
  12. VS2012新建项目出错:未找到与约束
  13. SLua 中继承 C# 类接口 Slua.Class 的一个 Bug。
  14. android:http下载文件并保存到本地或SD卡
  15. Android 5.0 之SwipeRefreshLayout
  16. 装饰器模式以及Laravel框架下的中间件应用
  17. struts2注释返回json数据
  18. AJAX传输——以XML文件传输为例
  19. 廖雪峰Java2面向对象编程-6Java核心类-6常用工具类
  20. 混沌数学之R&#246;ssler(若斯叻)吸引子

热门文章

  1. WPF获取读取电脑指定文件夹中的指定文件的地址
  2. 使用WPF技术模拟手机界面
  3. opencart源码解析之 index.php
  4. 搭建本地yum源和局域网yum源
  5. LeetCode - 4 - Longest Substring Without Repeating Characters
  6. HTTP、FTP状态码 汇总
  7. 自定义View实现图片热区效果
  8. 新浪API登录实例
  9. window下golang生成静态库给C语言调用
  10. ubuntu下建立golang的build脚本