ctfshow——web入门——115~127

web入门115

首先要注意一点

像这样,我们只要保证v2中第一项(1===1)正确即可,后面不用管

但如果直接再if判断中,都要满足

所以本题需要找到一个num,满足:数字,不全是36,trim后不全是36,filter函数后==36,并且num==36

trim() 是 PHP 中的一个内置函数,用于去除字符串两端的空白字符或其他预定义字符

首先是is_numeric的绕过,我们可以加入%00 %0a %20等字符绕过

到这里,前两个都满足了

接下来是trim函数

那就选择0c吧,接下来是第四个条件%0c36也满足

需要注意的是,代码中的$num!=='36'是一个强比较,即不会进行数据转换

而$num=='36'是一个弱比较,所以%0c36会转化为36

web入门123

我们要POST提交一个CTF_SHOW和CTF_SHOW.COM

因为有eval再,我们可以直接echo $flag

但是注意,如果直接CTF_SHOW.COM的话,"."这个符号会被替换(php变量名中不能出现.)

根据替换的规则

被get或者post传入的变量名,如果含有空格、+、[则会被转化为_,如果传入[,它被转化为_之后,后面的字符就会被保留下来不会被替换,所以 . 可以保留

所以得到payload:

CTF_SHOW=1&CTF[SHOW.COM=2&fun=echo $flag

当然,还有另外一种解法

fun=echo implode(get_defined_vars())

web入门125

增加了对c的过滤

测试发现可以用var_export

所以就

CTF_SHOW=1&CTF[SHOW.COM=2&fun=var_export(get_defined_vars())

看了payload,发现还有多种解法:

CTF_SHOW=1&CTF[SHOW.COM=1&fun=extract($_POST)&fl0g=flag_give_me

这个是变量覆盖, 使用extract函数,将数组里面的元素转化为变量 ,直接给fl0g赋值

高亮

CTF_SHOW=1&CTF[SHOW.COM=2&fun=include($_POST[1])&1=php://filter/read=convert.base64-encode/resource=flag.php(rot13不行)

web入门126

加了对字母gifcod的禁止

我们使用变量覆盖,但是extract不能用

CTF_SHOW=1&CTF[SHOW.COM=2&fun=parse_str($a[])

用来获取命令行参数,

这里a是传入argv的一个参数,被当做一个数组传入进去,数组他是以空格进行分割的,比如ls /-a,(斜杠前面有个空格),ls就是argv[0],/-a就是argv[2],+会解析为空格

还有一种:fun=assert($a[0])

?$fl0g=flag_give_me

(还没搞懂【悲】)

web入门127

当前页面 URL 中的查询字符串部分赋值给变量 $url

然后要过滤上面的字符,从而让extract函数变量覆盖

ctf_show=ilove36d

但是_有被过滤,所以我们通过加空格(空格会被替换为_)

还有编码绕过:%63%74%66%5f%73%68%6f%77=ilove36d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值