0x01 extract变量覆盖

<?php
$flag='xxx';
extract($_GET);
if(isset($shiyan))
{
$content=trim(file_get_contents($flag));
if($shiyan==$content)
{
echo'flag{xxx}';
}
else
{
echo'Oh.no';
}
}

extract()

定义:

  • 从数组中将变量导入到当前的符号表
  • 该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量

语法:extract(array,extract_rules,prefix)

  • array,必需,要使用的数组
<?php
$a="hello";
$b= array('a' =>"world" ,"b"=>"gogogo");
extract($b);
echo $a; world
?>

trim()

定义:

  • 去除字符串首尾的空白字符(或其它字符)

语法:trim(string,charlist)

  • string,必需,要检查的字符串
  • charlist,可选,规定删除哪些字符,省略则默认删除一些\t\n等字符。
<?php
$a1="hello world \t\n";
$a2="hello world ";
$b1=trim($a1);
$b2=trim($a2,"hed");
echo $b1,PHP_EOL;
echo $b2; hello world
llo world
?>

file_get_contents()

定义:

  • 把整个文件读入到一个字符串中

语法:file_get_contents(path,include_path,context,start,max_length)

  • path,必需,规定要读文件的路径

<?php
$a="E://info.txt";
$b=file_get_contents($a);
echo $b; hello world!!!
?>

0x02代码分析

变量flag值为"xxx"

extract()接收一个数组,键名作为变量名,值为变量值(若变量名与之前变量名相同则覆盖)

如果变量shiyan不为空

变量flag的值赋值给变量content

如果shiyan与content值相同输出flag

构造payload

123.206.87.240:9009/1.php?shiyan=&flag=

//shiyan和flag都为空
//两个变量作为一个数组被GET接收

参考链接:

https://blog.csdn.net/qq_40980391/article/details/80097596

最新文章

  1. DateHelper.cs日期时间操作辅助类C#
  2. 黑马程序员——【Java高新技术】——代理
  3. 【PHP设计模式 04_GongChang.php】 工厂方法
  4. Spring ProxyFactory
  5. location.hash &amp;&amp; location.href
  6. C#中静态方法和非静态方法的区别(一)
  7. 阻止Nmap的黑手
  8. JS画几何图形之六【过直线外一点作垂线】
  9. toString 方法在数组中的使用
  10. 【原】spring boot添加cros全局过滤器
  11. Pymsql
  12. java函数式编程之Supplier
  13. ABAP表抛FTP通用程序
  14. Dedecms织梦内容页获取当前页面顶级栏目名称方法
  15. HDU 2187 - 悼念512汶川大地震遇难同胞——老人是真饿了 - [大水题]
  16. Ubuntu18.04 - 返回到Gnome经典桌面!
  17. 让字体在div容器中垂直居中
  18. Python的扩展接口[3] -&gt; Matlab引擎 -&gt; 使用 Python 调用 Matlab 程序
  19. 使用JS完成注册表单的数据校验
  20. 【MVC】ASP.NET MVC5 使用MiniProfiler 监控MVC性能

热门文章

  1. [PHP][thinkphp5] 学习一:增删改查
  2. 【山外笔记-数据库】Memcached详解教程
  3. GoJS 教程新手入门(资源整理,解决方案)
  4. 22.Java面试学习平台-整合OSS对象存储
  5. all_user_func()详解
  6. 2019-2020-1 20199326《Linux内核原理与分析》第三周作业
  7. 自动化之SaltStack
  8. 【手把手教你】win10 虚拟机 VMware Workstation Pro 15下安装Ubuntu 19.04
  9. Highcharts的自适应DOM或者DIV,JS方法实现
  10. INTERVIEW #1