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

BUGKU-WEB 矛盾

题目描述

在这里插入图片描述
进入场景看看:
在这里插入图片描述
代码如下:

$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}

解题思路

  • 需要读懂一下这段PHP代码的意思
  • 明显是一道get相关的题目,需要提供一个num的参数,然后需要传入一个不是数字但等于1的值,也就是PHP的弱比较,见最后的//【新知识点】
  • 熟悉is_numeric函数:函数用于检测变量是否为数字或数字字符串。见最后的//【新知识点】

相关工具

解题步骤

  1. 解读代码的意思

定义一个num参数,
ps:【不是数字又要等于1,可真矛盾!】。

  1. 直接测试一下在1后面随便加一个不是数字的字符:
/?num=1</br>

在这里插入图片描述
得到了flag。

此外,还可以使用%00截断【新知识点】,来处理这个函数is_numeric():

/?num=1%00

在这里插入图片描述

得到Flag

flag{2cdfe6ebc7440d87eefc859989455fca}

在这里插入图片描述

新知识点

  • PHP is_numeric() 函数

关于PHP is_numeric()函数:
bool is_numeric ( mixed $var )
如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。

  • php弱比较

弱比较(相等比较符==):只要求比较的两个值在转换类型后相等即可。如果两个值的类型不同,会尝试将其中一个值转换为另一个值的类型。

将字符串转换成数字的机制如下:

1==“1admin” //true1==“admin”  //false1==“admin1” //false

所以,本题中直接在数字后面加上字母就会被转换成数字。

  • %00截断原理分析

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

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

相关文章:

  • 2024-02-11 Unity 编辑器开发之编辑器拓展2 —— 自定义窗口
  • Python 读取pdf文件
  • 人究其一生只是在通用智能模型基础上作微调和对齐
  • DS:二叉树的链式结构及实现
  • PhP+vue企业原材料采购系统_cxg0o
  • C++线程池
  • SpringCloud-Hystrix:服务熔断与服务降级
  • 浅谈Linux环境
  • Spring 用法学习总结(一)之基于 XML 注入属性
  • 免费软件推荐-开源免费批量离线图文识别(OCR)
  • 2 scala集合-元组和列表
  • Spring Boot开启SSL/Https进行交互。
  • 88.Go设计优雅的错误处理
  • Python4Delphi: Delphi 程序使用 Python 抓取网页
  • 编辑器Zed
  • Java的接口
  • 【计算机网络】计算机软件工程人工智能研究生复试资料整理
  • 【Network Management】AUTOSAR架构下CanNm User Data详解
  • 量子算法入门——2.线性代数与复数
  • 分别通过select、多进程、多线程实现一个并发服务器
  • 如何在 emacs 上开始使用 Tree-Sitter (archlinux)
  • FL Studio2024最新中文版有哪些其新功能特点?
  • Oracle的学习心得和知识总结(三十二)|Oracle数据库数据库回放功能之论文四翻译及学习
  • 系统架构27 - 软件架构设计(6)
  • STM32 cubemx配置DMA+空闲中断接收不定长数据
  • Pycharm配置运行selenium教程
  • 银河麒麟V10开机后黑屏解决方法
  • 【Git版本控制 02】分支管理
  • 基金分类
  • kali系统概述、nmap扫描应用、john破解密码、抓包概述、以太网帧结构、抓包应用、wireshark应用、nginx安全加固、Linux系统加固