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

ctfshow 每日练习 web 区 php特性 1-10

前置知识

这个php特性可以很好的练习我们的白盒简单代码的审计能力

web89

preg_match  正则匹配函数  (绕过 : 换行符绕过    (也可以利用他的数组返回数字进行绕过一下禁止字符的情况))

include("flag.php");   文件包含

isset($_GET['num'])看一下 我们是否给 get传参数  

下边这个是正则匹配  我们的 $num是不能有 数字的

最后是取整函数 intval($)   

这个的绕过就是我们先进入第一个逻辑 

?num=

再绕第二个逻辑 : 不能有数字  那就只能使用数组   ?num[]=1   数组绕第一个逻辑的同时 也绕过了第二个逻辑  intval遇见数组等于 1 会直接取

web90

考点: intval的绕过 :  这个也是考我们冲突逻辑   我们的输入  num  既不能等于 4476  还必须等于 4476 来获取flag

解决:  1、后缀字符   ?num=4476a

2、浮点数绕过   ?num=4476.1

当然还有个隐藏玩法就是  === 这个是不会 自动转字符  所以我们就是可以使用字符串  +  来伪装绕过第一次逻辑验证

正好intval 会把我们的拼接数字转为数字

web91

从第三行开始 :

把我们传入的内容赋值给 $a  如果a 有 php 就会进入逻辑   逻辑内是a内不能有php才会显示 flag

  

 这个就是考察 pre的绕过  :   把php换行就可绕过   ?cmd=111%0aphp

首先换行会让其识别到php 进入逻辑   同时 第二个没有m(换行之后还会匹配)会造成 pre只筛选一行 就会导致这个绕过

web92

审计 : 新加逻辑: 我们的输入  不能等于 4476  的同时还需要等于4476

这个就是简单的 

intval($num,0) 这个0表示十进制 

其实不写 0 也会自动转换为10进制   

八进制绕过         010574     八进制得出的结果是 10574  但是 这样会让其分不清是几进制   所以加个 0   表进制         

web93

逻辑  需要我们的num 跳过上两个逻辑    8进制绕过  010574  绕过了第一个逻辑  第二个  

或者是浮点数绕过

web94

strpos(目标,‘要搜寻的东西’)  搜寻函数  如果我们的num没有0就会GG

绕过 : 

2、 浮点数也可以绕过 :   4476.01   只需要添加一个 0 供其匹配就行(看错了这个是过滤了一个 . )

web95

web96

拿到直接 区解码出来了

web97

从这个题开始 这里的代码审计就会变得难很多了

这个的逻辑是这两个数是不相等 但是MD5的值是相等的  

使用数组不能被MD5的特点  ?a[]=1&?b[]=2   

web98

10、如果 get是设置的 就让 get=post   否则自定义为 flag
get !=flag
?flag !=falg
我们无法设置 cookie和session  所以需要跳过
 $_GET = &$_POST  表示如果为假的就 让post的值等于 get


http://www.mrgr.cn/news/82449.html

相关文章:

  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之10 方案再探之1:特定于领域的模板 之1 随想交流
  • 《Vue3实战教程》19:Vue3组件 v-model
  • 25考研王道数据机构课后习题-----顺序表链表部分
  • LeetCode--复原IP地址(面试手撕算法高频题)
  • Docker 远程访问完整配置教程以及核心参数理解
  • STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
  • kubernetes学习-kubectl命令、探针(二)
  • 关于linux的ld.so.conf.d
  • 阿里云服务器上安装配置Logtail日志收集客户端
  • Node 如何生成 RSA 公钥私钥对
  • Formality:官方Tutorial(一)
  • 『 Linux 』高级IO (二) - 多路转接
  • SQL字符串截取函数——Left()、Right()、Substring()用法详解
  • 计算机网络 (21)网络层的几个重要概念
  • AI数据标注师理论部分考试题库 - 500题
  • Spring AOP 扫盲
  • React Router 用法概览
  • C# 附加到进程中,发现断点不是实的断点
  • 中国联通首次推出一套量化大模型的新标准
  • 【YOLOv8老鼠检测】
  • USB 驱动开发 --- Gadget 驱动框架梳理
  • 动态规划<八> 完全背包问题及其余背包问题
  • 国内Ubuntu环境Docker部署CosyVoice
  • 国内Ubuntu环境Docker部署Stable Diffusion入坑记录
  • 多模态论文笔记——Coca
  • 多模态论文笔记——CogVLM和CogVLM2(副)