Writeup-moectf-ezphp

  • 西电新生赛Moectf里面web方向的ezphp

  • 有点小提示(火力覆盖--覆盖)--考虑 web变量覆盖
  • 打开页面 看到源码

  • 四行语句,执行完毕才可出flag
  • 发送GET或者POST请求,要求请求名(key)为flag否则返回$giveme
  • 第二行要求值不等于flag否则返回$getout
  • 三四行对超级全局变量POST GET进行遍历赋值,我们发现输出的flag被自己提交的POST/GET请求覆盖,导致输出的是自己输出的值,无法得到flag
  • ps:键和值的概念参考其他文章((4条消息) php extract 变量覆盖,变量 覆盖漏洞----$$_Duke Yu的博客-CSDN博客

  • 首先想到更改一下getout值,让其在第二个函数报错带出flag
  • 用bp抓个包
  • 发现$flag不会执行,当成字符串运行

  • 刚才变量代替方法行不通,考虑下后两行函数
  • 要想让$flag不被替换,要么考虑等号后是否可以注释,要么考虑等号前--更改的不是$flag
  • 注释显然行不通,想办法既要通过前两行要求,也要更改到$flag名
  • 想到_GET超级全局变量;
  • 由于先判断POST 再判断GET
  • 用POST更改GET,使第二个语句不生效
  • 构造payload:
  • GET: ?flag=1
  • POST: _GET=fal(不是flag就可以)
  • 相当于发送的post和get可以绕过第一条命令:post get至少一个key(等号前的)为flag
  • 和第二条命令:二者值不能为flag
  • 并且通过前两个语句后,post语句将$$key =$$value变成$_GET=$fal(post的值)而后使得第四个语句不对$flag造成覆盖
  • 进而绕过过滤爆出最后flag
  • 参考文章(4条消息) php extract 变量覆盖,变量 覆盖漏洞----$$_Duke Yu的博客-CSDN博客
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值