ctfshow——web入门108~114

web入门108

strrev函数反转字符串,0x36d为877

有intval,所以intval(877a)=877

反转后为a778

因为c中要只包含字母,所以我们用 %00截断

payload:a&00778

web入门109

v1是一个类

但是如果直接echo一个类是会显示错位的,那么就要找到一个类,echo它会有返回值

群主视频里面有提到

这样输出是错误的

但是这样就可以正常输出

但是题目并没有给我们定义类,所以我们需要去使用php的内置类

比如Exception 类

然后

是检测是否有字母

关于v2():只要变量后面直接跟着(),那么对变量进行函数调用

其他的方法:

v1=Error&v2=system("ls")

v1=mysqli&v2=system("ls")

v1=Reflectionclass&v2=system('ls')

v1=class{ public function __construct(){ system('ls'); } };&v2=abc (构造类)

题目是做完了,但是有几个注意的点

只要变量后面直接跟着(),那么对变量进行函数调用

可以看到,输出phpinfo的同时也执行了phpinfo的命令

但是如果将v2闭合,也就是去掉后面的()

就会这样:

输出了phpinfo,但是没有执行命令

也就是用echo 输出phpinfo这个字符串

(system用于执行外部程序并显示输出)

web入门110

在109的基础上禁了一堆

使用109的各种方法都不行,无法绕过

FilesystemIterator (详细链接)是 PHP 中的一个类,用于遍历文件系统目录中的文件和子目录,但是需要给他一个路径

考虑查看目录函数的替代:scandir()、golb()、dirname()、basename()、realpath()、getcwd()

其中 scandir()、golb() 、dirname()、basename()、realpath() 需要给定参数

而 getcwd() 不需要参数

getcwd() 是 PHP 中的一个内置函数,用于获取当前工作目录的路径

故v2=getcwd()

web入门111

?v1=ctfshow&v2=GLOBALS

  • 我们最终要得到 $flag 的值,就需要 var_dump($$v1) 中的 $v1 为 flag,即 $v2 要为 flag,这样 $$v2 就为 $flag,&$$v2 就为 $flag 对应的值
  • URL 传参时 $v2 不能直接传为 flag,否则 $flag 会因“函数内部无法调用外部变量”的限制而导致其返回 null
  • 要想跨过词法作用域的限制,我们可以用 GLOBALS 常量数组(它是一个包含了所有全局作用域中变量的数组),其中包含了 $flag 键值对

web入门112

发现没有禁止filter

is_file() 是 PHP 中用于检查给定文件名是否为一个常规文件的内置函数。它返回一个布尔值:如果文件存在且是一个常规文件(不是目录、符号链接等),则返回 true;否则返回 false

那我们就有多种方式

php://filter/resource=flag.php

一些常见的过滤器:

convert.quoted-printable-encode:将数据编码为 Quoted-Printable 编码格式

convert.iconv.*:使用 iconv 库进行字符编码转换

zlib.deflate:使用 zlib 库对数据进行 deflate 压缩

convert.iconv.UCS-2LE.UCS-2BE:小端转大端

bzip2.compress:使用 bzip2 算法压缩数据

string.rot13:rot13编码

string.tolower:将所有字符转换为小写

convert.base64-decode:base64编码

--------------------------------------

还有这种:

web入门113

这里是把filter禁了

那就用compress.zlib

参考文件:

web入门114

没有禁止filter,那就

还有?file=php://filter/zlib.deflate|zlib.inflate/resource=flag.php

即先压缩,再解压

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值