ctfshow we89-101

目录

Web 89

Web 90

Web 91

Web 92

Web 93

web 94

Web 95

Web 96

Web 97

Web 98

Web 99

Web 100

Web 101


Web 89

明显需要绕过preg_match()

利用数组绕过:

Payload:?num[]=a

Web 90

因为intval() 函数返回integer值,所以加小数即可绕过if判断且intval()运算后还为4476

Payload:?num=4476.1

Web 91

在preg_match()函数中;

正则:会出现/ / 有时候也会有^ $考察了preg_match的/m模式

im模式是可以匹配很多行i模式只能匹配一行

%0a换行,相当于enter

所以构造一个通过/im不通过/i的即可

Payload:?cmd=1%0Aphp

Web 92

intval()函数如果$base为0则$var中存在字母的话遇到字母就停止读取 但是e这个字母比较特殊,可以在PHP中不是科学计数法。

Payload:?num=4476e1

Web 93

过滤了字母,但我们可以使用八进制

Payload:?cmd=0105

web 94

strpos函数限制了传参第一位不能为0

仔细观察这里是强等于

我们可以在八进制前加一个空格

Payload:?num=  010574

or ?num=4476.0

Web 95

还是通过8进制绕过但是前面必须多加一个字节

Payload:? num=%2b010574

绕过Strop使得最前方不是0即可

Web 96

Highlight_file回显flag.php还要绕过if

Payload:?u=./flag.php

意为显示当前目录下flag.php文件

Web 97

直接POST:a[]=1&b[]=2

Web 98

两个知识点链接

php函数的传值与传址(引用)详解-php手册-PHP中文网

php三元运算符与if的详解-php教程-PHP中文网

同时GET和POST :HTTP_FLAG=flag

Web 99

in_array()函数有缺陷,若没有设置第三个参数,则存在强制转换

在in_array()中n=2.php就会转化成n=2,此外通过file_put_contents()创建一个文件写入php代码

Web 100

运算符优先级:&& > || > = > and > or

is_numeric() 函数用于检测变量是否为数字或数字字符串。

是数字和数字字符串则返回 TRUE,否则返回 FALSE

var_dump()函数可以输出多个值。

$v0=is_numeric($v1) and is_numeric($v2) and is_numeric($v3)

这一句中=的优先级大于and所以and没用v0就直接由v1决定,所以v1一定是数字,且v2不能有分号,v3要有分号

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

or ?v1=1&v2=var_dump($ctfshow)/*&v3=*/;

结果要将0x2d转变为-

Web 101

过滤了许多字符,上一题的两种var_dump和直接命令用不了

看了hint考的内容是类反射

PHP Reflection API是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。

$class = new ReflectionClass('Person'); // 建立 Person这个类的反射类 

$instance  = $class->newInstanceArgs($args); // 相当于实例化Person 类

Payload:?v1=1&v2=echo new ReflectionClass&v3=;

Flag少一位,需要爆破十六次(找前边已经出现过的数字或字母)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f0njl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值