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

攻防世界 simple_php

<?php
show_source(__FILE__);//显示 PHP 文件的源码
include("config.php");// 包含了一个config.php文件
$a=@$_GET['a'];//获取GET 参数 a 和 b
$b=@$_GET['b'];
if($a==0 and $a)
{
    echo $flag1;
}
if(is_numeric($b))//防止数字输入
{
    exit();
}
if($b>1234)//如果 $b 大于 1234,将输出 $flag2
{
    echo $flag2;
}
?>

代码审计 

总结:a==0 且 a 为真,b 不是数字且 b>1234 这些条件同时满足才会返回 flag

PHP中,== 会自动转换类型然后进行比较,当一个字符串和一个数字进行比较时,PHP会尝试将这个字符串转换为一个数字。如下图这个例子中,字符串"2025a"会被转换为数字2025,因为在遇到非数字字符"a"时,转换就会停止。如果字符串不包含任何数字,那么它将被转换为0

所以

a可以构造成任意一个没有数字的字符串

b可以构造成2222a(任意一个比1234大的数+a),类型转换后为2222,大于1234

?a=='a'&b=2222a


http://www.kler.cn/a/528541.html

相关文章:

  • Leetcode::81. 搜索旋转排序数组 II
  • Linux中 端口被占用如何解决
  • java求职学习day23
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
  • 04树 + 堆 + 优先队列 + 图(D1_树(D1_基本介绍))
  • 12.udp
  • Java基础知识总结(三十九)--流对象
  • 【JavaEE】Spring(4):配置文件
  • 1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
  • Effective Objective-C 2.0 读书笔记—— 方法调配(method swizzling)
  • 【自然语言处理(NLP)】深度学习架构:Transformer 原理及代码实现
  • 2025_2_1 C语言中关于字符串
  • 从 HTTP/1.1 到 HTTP/3:如何影响网页加载速度与性能
  • 交易股指期货有什么技巧吗?
  • C++中的构造器(Constructor)(也称为构造函数)
  • 三、js笔记
  • 扬帆启航于数据结构算法之雅舟旅程,悠然漫步于C++秘境——探索线性表之栈的绮丽定义与精妙实现
  • 10.[前端开发-CSS]Day10-CSS的浮动和flex布局
  • 【LeetCode: 81. 搜索旋转排序数组 II + 二分查找】
  • 汽车中控屏HMI界面,安全和便捷是设计的两大准则。
  • 调音基础学习
  • 【LLM-agent】(task3)数据库对话Agent和RAG接入Agent
  • 【数据结构-前缀树】力扣208. 实现 Trie (前缀树)
  • Baklib揭示内容中台实施最佳实践的策略与实战经验
  • 好用的翻译工具
  • 基于VMware的ubuntu与vscode建立ssh连接