ctfshow web93-98

web93

打开环境是一个代码审计题目

ctfshow web93-98_第1张图片

简单分析就是输入一个变量num,其值不能等于4476与包含字母,但是他的值需要为4476

函数intval作用为获取变量的整数值,第二个参数的意思是进制,默认为10进制。题目参数为0,就根据变量类型进行判别

但是只能识别10,16,8三种类型

由于题目过滤了10进制的4476与16进制的x,我们可以用八进制进行绕过

即010574(0为标识符)

?num=010574

ctfshow web93-98_第2张图片

 得到flag,此题结束。

web94

打开环境,与上一题类似,但是多了个strpos()函数

ctfshow web93-98_第3张图片

ctfshow web93-98_第4张图片

 因为使用了===(值相同且类型相同),所以8进制数无法判别(因为标识符最左侧为0,所以返回值为0)。我们可以在数字后面加上一个.0来进行绕过

?num=4476.0

ctfshow web93-98_第5张图片

 得到flag,此题结束。

web95

打开环境,发现过滤了.

ctfshow web93-98_第6张图片

于是我们继续从intval函数入手,因为8进制数会被判定为0,但我们可以在前面加上一个+使其不会被误判。

?num=+010574

ctfshow web93-98_第7张图片

得到flag,此题结束。

web96

打开容器,是一个传参过滤题

ctfshow web93-98_第8张图片

当我们输入flag.php时会被过滤。但是highlight_file函数可以显示文件的内容,所以我们需要输入flag.php

这个时候可以使用相对路径进行绕过

?u=./flag.php

ctfshow web93-98_第9张图片 得到flag,此题结束

web97

ctfshow web93-98_第10张图片

简单的md5碰撞题,使用数组即可绕过

?a[]=1&b[]=2

 ctfshow web93-98_第11张图片

得到flag,此题结束

web98

ctfshow web93-98_第12张图片

这个题目意思是同时获取get和post的传参且get指向post的地址,意思是两者改变其一另一个都会变

于是我们直接使用get,post同时传参即可

 ?HTTP_FLAG=flag

HTTP_FLAG=flag

ctfshow web93-98_第13张图片

得到flag,此题结束

web99

ctfshow web93-98_第14张图片

array()函数创建数组

in_array() 函数搜索数组中是否存在指定的值

array_push()函数在数组末尾添加内容

rand(min,max)函数返回一个在min和max区间的随机数字

file_put_content()函数往一个文件中写内容

于是我们可以知道题目写入了一个从1到877的随机数组,并且匹配输入的变量n中是否有其中的数字

这里涉及到一个弱比较,即==。弱比较会根据最前面的字符决定类型

比如1.php会被识别为1

于是我们构造payload

?n=1.php

content=

 随后使用蚁剑连接,得到flag,此题结束

你可能感兴趣的:(网络安全)