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相关推荐

  1. ctfshow RCE极限挑战 wp

    这五题都做出来,真的不容易呀,最终终于是在比赛结束以前全部做完了,拿到了十几块钱,是一个星期的早餐了,嘿嘿嘿嘿,哎,不过对于,自增的理解可以说是提升很多很多,这里主要讲的自增,主要详细讲解他是怎么用的 ...

  2. ctfshow--RCE极限挑战

    本周ctfshow的挑战注重点为RCE,主要利用是:自增绕过RCE RCE挑战1 属于简单类型 源码 error_reporting(0); highlight_file(__FILE__); $co ...

  3. C# 约瑟夫环 用数组实现

    约瑟夫环 已知n个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围的人 ...

  4. 【kubernetes系列之安装Dashboard】

    目录 一.安装dashboard 二.集群网络模式 三.查看 Dashboard 暴露外网端口 四.访问dashboard 五.创建账户,生成token kubernetes折腾了好久,终于把Dash ...

  5. java常用算法之冒泡排序简单例子

    为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...

  6. 【Python】数理统计理论:常用统计量、经验分布函数

    一.常用统计量 数理统计学中常用的统计量有:样本均值.样本方差.顺序统计量.中位数.众数等. 其中可以反映总体位置特征的有数据的中心位置是均值(Mean),中位数(Median),众数(Mode).其 ...

  7. 大数据实战二十四课 - Spark SQL04

    第一章:上次课回顾 第二章:Spark SQL Functions 2.1 简单小应用 2.2 Spark SQL自定义函数 第三章:Catalog 第四章:DataSet 第五章:窗口函数 第六章: ...

  8. 数据分析 第七讲 pandas练习 数据的合并、分组聚合、时间序列、pandas绘图

    文章目录 数据分析 第七讲 pandas练习 数据的合并和分组聚合 一.pandas-DataFrame 练习1 对于这一组电影数据,如果我们想runtime(电影时长)的分布情况,应该如何呈现数据? ...

  9. [2019红帽杯]easyRE1题解

    迷蒙马背眠,月随残梦天边远,淡淡起茶烟.                                                         --松尾芭蕉 目录 1.查壳 2.拖入64位I ...

  10. Redis Essentials 读书笔记 - 第一章: Getting Started (The Baby Steps)

    Chapter 1. Getting Started (The Baby Steps) Redis是在内存中运行的NoSQL key-value数据库. Redis的优势除了内存的高性能外,还有其支持 ...

最新文章

  1. Javascript字符串及数组赋值区别
  2. Nginx(一)------简介与安装
  3. CentOS7.2 安装Squid3.5及正、反向代理设置
  4. 在Flex3中使用Runtime Shared Library (RSL)
  5. Spring Boot 参考指南(运行你的应用程序)
  6. 《Cassandra实战》CassSeller程序源代码下载
  7. 快速撑握C#知识点之变量,类型及类型转换
  8. step3 . day8数据结构之算法
  9. Java从键盘输入若干数_用java编程序:从键盘输入若干个整数,输出这些数中大于其平均值的数。...
  10. 重庆高职高专计算机排名,重庆十大大专排名(含分数线2021年参考)-重庆最好的全日制专科学校...
  11. su 、 sudo 命令及限制 root 远程登录
  12. iOS 使用 socket 即时通信(非第三方库)
  13. MyBatis框架学习笔记04:利用MyBatis实现条件查询
  14. SSH 上传下载文件
  15. Jquery实现循环删除Reaper某一行
  16. c++ opencv mat_OpenCV计算机视觉-Core组件(一)
  17. tomcat官网下载详细步骤
  18. NOIP2016:换教室
  19. nova虚拟机迁移一
  20. 微信小程序开发前后端交互快速入门

热门文章

  1. 数字集成电路版图设计(三)——加法器绘制
  2. 安德森:无人机未来的发展会与智能手机趋同
  3. 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(六)——电商核心业务知识之订单商品模块
  4. 谈一下PCB的布局与走线
  5. 采集全站资源PHP源码V1.2
  6. 《工厂订单出入库信息管理系统》模块1 -- 订单管理
  7. 信息化时代,你为什么还在坚持读纸质书
  8. 千瓜深度解读:2020小红书双十一全行业“种草”、“拔草”投放攻略
  9. 【误码率仿真】基于matlab多径信道下OFDM通信系统误码率仿真【含Matlab源码 2078期】
  10. 三分钟热度的人,无法过上自律的生活