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

buu做题(7)

[BJDCTF2020]Mark loves cat

开始的界面没啥东西, 看了下源码好像也没啥东西
用dirsearch扫描一下
有git 泄露
用工具githack下载源码
 

<?phpinclude 'flag.php';$yds = "dog";
$is = "cat";
$handsome = 'yds';foreach($_POST as $x => $y){$$x = $y;
}foreach($_GET as $x => $y){$$x = $$y;
}foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}
}if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);
}echo "the flag is: ".$flag;

$$的变量覆盖
看第一个 exit($handsome)
 

foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}
}

看起来这是矛盾的, 但是可以传两个参数 , 一个是flag 一个是handsome
?handsome=flag&flag=handsome

经过一次get的变量覆盖
$handsome=$flag
$flag=$flag

然后进入到判断那里面
开始进入遍历 $_GET
第一个 $x --> handsome
可以满足 $_GET['flag']==$x 而且 $x==handsome 也满足  !==flag
然后 exit($handsome) 输出 $handsome , 经过前面的GET的变量覆盖
$handsome=$flag  , 所以就可以输出flag的值了

当然也可以构造出其他的, 利用后面的  exit($yds); exit($is);
来输出flag

?yds=flag

或者
?is=flag&flag=flag

[BJDCTF2020]Cookie is so stable

题目很明显的提示了 Cookie有问题

多尝试几遍, 可以发现无论输入什么都会登进去

所以应该不会是sql注入啥的
而且这个 形式感觉挺像 ssti注入的
尝试一下 {{3*3}}

也确实能够执行 输出 9
当然前面提示说看 cookie
登录后就会发现 cookie多出一行 user ,  他的值经过url解码就会发现就是我们输入的东西

直接修改里面的值 , 相应的内容也会变化

需要注意到这个ssti注入是php, 而不是python的

抓个包, 也可以看到

修改里面的user的值
通用的payload就可以打出来

https://www.cnblogs.com/bmjoker/p/13508538.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大数据开发之Hadoop
  • 【栈和队列】算法题 ---- 力扣
  • rsync文件远程同步
  • BiLSTM 实现股票多变量时间序列预测(PyTorch版)
  • 爬虫爬取网页的信息与图片的方法
  • SpringCloud03_loadbalancer的概述、负载均衡解析、切换、原理
  • Synchronized升级到重量级锁会发生什么?
  • 任务2:python+InternStudio 关卡
  • 第五节shell脚本中的运行流程控制(3)
  • 智能水果保鲜度检测:基于YOLO和深度学习的完整实现
  • 学习TS -类型
  • 区块链技术在智能家居中的创新应用探索
  • vscode 文件颜色变绿色
  • “论面向方面的编程技术及其应”,写作框架,软考高级论文,系统架构设计师论文
  • 【IntelliJ IDEA】一篇文章集合所有IDEA的所有设置
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • “大数据应用场景”之隔壁老王(连载四)
  • create-react-app项目添加less配置
  • C语言笔记(第一章:C语言编程)
  • ES6核心特性
  • exports和module.exports
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Median of Two Sorted Arrays
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • python_bomb----数据类型总结
  • Redux 中间件分析
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 排序算法学习笔记
  • 微信公众号开发小记——5.python微信红包
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • (12)Hive调优——count distinct去重优化
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C语言)fgets与fputs函数详解
  • (windows2012共享文件夹和防火墙设置
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (五)Python 垃圾回收机制
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • ***测试-HTTP方法
  • ... 是什么 ?... 有什么用处?
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 分布式技术比较
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • @angular/cli项目构建--Dynamic.Form
  • @RequestBody与@RequestParam