ctfshow web入门 php特性 web108--web115

web108

在这里插入图片描述在这里插入图片描述ereg函数相当于而preg_match()函数
ereg函数的漏洞:00截断。%00截断及遇到%00则默认为字符串的结束
strrev函数就是把字符串倒过来

就是说intval处理倒过来的传参c==0x36d877

在这里插入图片描述?c=a%00778
在这里插入图片描述

web109

异常处理类
在这里插入图片描述通过异常处理类Exception(system(‘cmd’))可以运行指定代码,并且能返回运行的结果(如果存在返回)

?v1=Exception&&v2=system('ls')

在这里插入图片描述?v1=Exception&&v2=system('tac f*')
在这里插入图片描述

web110

filesystemiterator 遍历文件类

DirectoryIterator 遍历目录类

getcwd()函数 获取当前工作目录 返回当前工作目录

在这里插入图片描述?v1=Filesystemiterator&v2=getcwd
在这里插入图片描述缺陷是如果flag的文件不在第一位的话,就不能得到这个文件名。而且这个也没法读文件,所以这题的flag文件和之前一样都是.txt。
访问文件在这里插入图片描述

web111

在这里插入图片描述这道题没蒙,看了大佬的题解太详细了我写的也会很详细

PHP中,$a 本身表示一个变量名,而 &$a 并不是表示“a的位置”,而是表示对 $a 变量的引用。
在这里可以认为是地址

getflag函数

eval("$$v1 = &$$v2;");
//将v2的地址传给v1
var_dump($$v1); 
//打印v1 

v1中必须有ctfshow字符

var_dump会打印内容,但是并不知道flag在哪个文件于是使用PHP的超全局变量$GLOBALS

然后构造payload

?v1=ctfshow&v2=GLOBALS

在这里插入图片描述

web102

在这里插入图片描述is_file检查file是不是文件
这里过滤了很多php伪协议的东西但是最常用的filter还可以用

file协议不能绕过is_file的判断。
http协议需要公网ip。
glob协议返回的是一个数组。highlight_file不能对数组进行高亮,所以本题不能用。
?file=php://filter/resource=flag.php

在这里插入图片描述

web113

在这里插入图片描述filter过滤之后,可以用压缩流
?file=compress.zlib://flag.php在这里插入图片描述还有一种方法是目录溢出让is_file测不出file是文件

/proc/self:不同的进程访问该目录时获得的信息是不同的,内容等价于/proc/本进程pid//proc/self/root/是指向/的符号链接,就是根目录。
?file=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

也可以

web114

在这里插入图片描述刚才的目录溢出和压缩流用不了了,但是你看filter还有哈哈哈哈

?file=php://filter/resource=flag.php

在这里插入图片描述

web115

在这里插入图片描述

filter函数将0x,0,  .  ,e,+都过滤了
然后num还要满足
is_numeric($num) and $num!=='36' and trim($num)!=='36' and filter($num)=='36' 

trim函数主要功能是从给定的字符串两端(即开头和结尾)去除指定的一系列字符

is_numeric可以在数字前面加**空格**绕过($num!=='36'这个也可以绕过)filter也可以绕过了
%0c(换页)绕过trim函数
?num=%0c36

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值