ctfshow web入门php特性 web89-93

1.web89

ctfshow web入门php特性 web89-93_第1张图片
不能输入0到9
intval函数是获取变量的整数值,失败时返回 0, 空的 array 返回 0,非空的 array 返回 1
payload:
num[]=1

2.web90

ctfshow web入门php特性 web89-93_第2张图片
不能直接传入4476,会直接退出,利用的是php弱类型比较,在比较时会进行数据类型转换

int intval ( mixed $var [, int $base = 10 ] )
如果 base 是 0,通过检测 var的格式来决定使用的进制: 如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制 (hex);否则,如果字符串以 "0"开始,使用 8 进制(octal);否则, 将使用 10 进制 (decimal)。

payload:

4476a    随便一个字符
4476.0    小数点  
+4476.0  正负号
4476e0    科学计数法
0x117c    16进制
010574    8进制
 010574    8进制+空格

3.web91

ctfshow web入门php特性 web89-93_第3张图片
必须以php开头,才能进入到第一个if匹配语句,第二个if匹配语句,是不能以php开头
m的意思是开启多行匹配,可以利用换行符进行绕过,第一个if开启了多行匹配,可以在第二行以php开头,而第二个if没有开启多行匹配,所以只要第一个传入的不是php即可绕过
payload:

a%0aphp

4.web92

ctfshow web入门php特性 web89-93_第4张图片
传入的num值首先做了一个不完全比较,在这个地方会进行弱类型比较,这题在传入4476a之类的字符就不行了,intval(num,0),第二个字符为0时会根据传入的num变量值来决定使用什么进制,所以这题可以用进制绕过
payload:

0x117c    16进制
010574    8进制
 010574    8进制+空格

5.web93

ctfshow web入门php特性 web89-93_第5张图片
和上题相比,就是不能使用a-z,所以可以用八进制绕过
payload:

010574    8进制
 010574    8进制+空格

参考文章:
ctfshow web89-93

你可能感兴趣的:(ctfshow通关,php,开发语言,网络安全)