代码审计(web1) - 图1

    只需要第一个两个if都为true既可得flag

    代码解析:

    isset()函数用于检测变量是否已设置并且并非为NULL(换句话来说就是这个函数是否被定义)

    1. 如果已经使用unset()释放了一个变量之后,再通过isset()判断将返回FALSE
    2. 若使用isset()测试被设置成一个NULL的变量,将返回FALSE

    同时要注意的是null字符(”\0”)并不等于与php的NULL常量。

    注意:如歌$a=’ ‘,还是会返回ture

    extract()会覆盖已有变量

    file_get_contents()

    代码审计(web1) - 图2

    当它读取不存在的文件时候会报错,返回空值,但是程序会继续下执行(直接读取字符串也返回空值)

    因为$b变量没有,所有他不存在这个文件,返回空

    于是构造?a=

    代码审计(web1) - 图3