1.等于号
因为是两个等于,所以1.0可以+1也可以,1admin也是可以
2.0e漏洞
当解析得到的md5值前面两位0e是相等的,==就表示true,===表示的是false;(不是0e)
在url中
此时表示false,想要绕过就得使用数组,在md5中,MD5无法处理数组,所以处理过后的数组都是表示NULL,然后NULL=NULL就表示true。
然后name和password想输入多少都表示true.
2.intval函数
可以将值转化成整数
base的作用
0x29a是666的16机制,intval函数将0x29转化为666
strops函数
得到的答案是7
in_arrary函数
寻找想要的东西是否在数组之中,如果不设置TRUE就只是普通的等于,不看类型(1=1e)
如果设
就会判断类型
preg_match
这个的意思是从0-9有没有$num的存在
此时想要输出flag,可以输入数组
preg_match没办法匹配数组,而intval可以匹配数组
str_replace
它可以过滤,但不能迭代
isset函数
判断是否有值在里面
ctf
因为第一个可以检测到换行,而第二个没办法检测到换行,所以第一个可以检测到php,下面那个只能检测到" "(%0a是换行符,%20是空格)
这种可以在url中$num=%20015074
或者$num= 015074(这里是加了空格的)
2.
flag在flag.php这个文件中,所以我们要读到这个文件,所以,我们要加也该加./(不同的操作系统是不一样的)
cms源码php审计(str_replace不能迭代过滤)
从这里我们可以看到(它可以读取文件)
这个它会过滤,让我们只能读取当前的目录
所以在url中,我们需要这么写
然后查看谁调用了这个函数
这里可以看到它执行的路径
我们可以在url中输入这个
(为啥要加两个这种../)
cms代码审计in_arrary
发现in_arrary没有true,
然后查找到这个数组的值,所以我们可以通过1,后面随便加来进行注入
就像这样,1可以等于这些
然后发现rate是这么传进来的
总之,就是这样
/”和“\,这两种斜杆都表示的是一样的