当前位置:   article > 正文

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

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

[题目信息]:

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

[题目考点]:

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

[Flag格式]:

SangFor{M2WVKvkITidpS6dr}

[环境部署]:

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

http://分配ip:2010

[题目writeup]:

1、实验主页

2、源码分析

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

  1. <!--
  2. $he ='Spring';
  3. $flag = "**********";
  4. parse_str($_GET['SangFor']);
  5. if ($he =="Moon"){
  6. echo $flag;
  7. }
  8. -->

前置知识

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

例如:

  1. $a = "name=SangFor&age=666";
  2. parse_str($a,$b);
  3. echo $b['name']."\n";
  4. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/440577
推荐阅读
相关标签
  

闽ICP备14008679号