14周

1.ctfshow web90

相关知识: 

intval($var,$base),其中var必填,base可选.这里base=0,则表示根据var开始的数字决定使用的进制: 0x或0X开头使用十六进制,0开头使用八进制,否则使用十进制。

可知需要将4476转化为八进制或十六进制

paylod:?num=010574或num=0x117c

另web93

增加正则匹配过滤字母,进制转化不受影响

web 94 

在93基础上再过滤开头为零的数字,可以通过 intval函数转化为整型的功能,增加小数点

paylod:?num=4476.0

2.ctfshow web91

考察正则匹配,相关知识:

i 不区分(ignore)大小写
m 多(more)行匹配 若存在换行n并且有开始^或结束$符的情况下, 将以换行为分隔符,逐行进行匹配 

可知第一个为多行匹配,第二个为单行匹配,需要绕过第二个

则可以构造: ?cmd=%0Aphp

注:%0A为回车即换行,第一个可以匹配多行,第二个只匹配第一行的%0A,成功绕过。

3.ctfshow web100

存在eval函数,可知考察命令执行 。get传参v1为数字时,v0为true,进入if,接着v2过滤分号;v3匹配分号

paylod:/?v1=1&v2=system('tac ctfshow.php')/*&v3=*/;

注:/*  */为注释字符,即将v3注释,v3=*/;存在分号,匹配通过,且v3被注释,留下分号,与v2形成闭环,成功命令执行。

解法二:可以直接var_dump ctfshow变量

相关知识:var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.

paylod:?v1=1&v2=var_dump($ctfshow)&v3=;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值