实验吧Web-FALSE

笔记:

PHP函数isset(): 检测变量是否设置

只能用于变量,传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数

 格式:  isset ( mixed var [, mixed var [, ...]] ) 

    若变量不存在则返回 FALSE
    若变量存在且其值为NULL,也返回 FALSE
    若变量存在且值不为NULL,则返回 TURE 

    同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE

== :  比较运算符号  不会检查条件式的表达式的类型

===:  恒等计算符 , 同时检查表达式的值与类型。(会检查表达式类型,如bool)

die()函数  :  停止程序运行,输出内容

sha1()函数: 计算字符串 "Hello" 的 SHA-1 散列。默认的传入参数类型是字符串型

W3School: http://www.w3school.com.cn/php/func_string_sha1.asp

例:

<?php
$str = "Shanghai";
echo sha1($str);
?>

链接: http://www.shiyanbar.com/ctf/1787

右击查看源代码,发现这一段:

登录成功条件: (1)传入name,password的值(2)name和password的值不能相等(3)  name和password的sha1加密散列值相等

前两个条件容易实现,关键是第三个条件,怎样实现呢?

思路: sha1()函数默认的传入参数类型是字符串型,可以传入其他类型,使其返回值为false。如数组类型。

实现: 构造url:  http://ctf4.shiyanbar.com/web/false.php?name[]=a&password[]=b (a,b只要不等即可),提交即可获得flag

 

原文地址:https://www.cnblogs.com/ssooking/p/5869784.html