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

simple_php

访问靶场在这里插入图片描述

这里传入a和b参数,绕过三个if即可拿到flag
a = @ a=@ a=@_GET[ a’ ];中@是抑制报错信息的。
第一个if非常的抽象,

if($a==0 and $a){
    echo $flag1;
}

处理a

要输出flag1,a0,但是,在php中0被视为假也就是Flase
如果a
0,则if(1and0)这个if语句任然为假不会输出flag。
PHP 会进行类型转换,如果 $a 的值是字符串(如 asa),则会被转换为 0 进行比较。在 PHP 中,非数字字符串在进行数值比较时被视为 0
这样就绕过a了。

处理b

if(is_numeric($b)){
    exit();
}

此处b不能为数字,准确的说不能为纯数字,不然就会执行exit函数。

if($b>1234){
    echo $flag2;
}

若要进入第三个if语句,则b经过处理后一定是有一个值可以与数字比大小
在进行比较时,PHP 会尝试将 $b 转换为一个数字。
字符串 如"12345a" 在转换为数字时,PHP 会从字符串的开始部分读取数字,直到遇到非数字字符为止。在这个例子中,“12345a” 会被转换为 12345。

成功

在这里插入图片描述


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

相关文章:

  • Flink 源码 TaskManagerRunner 启动 Akka Actor System 源码
  • JVM(HotSpot):GC之G1垃圾回收器
  • FPGA第 13 篇,使用 Xilinx Vivado 创建项目,点亮 LED 灯,Vivado 的基本使用(点亮ZYNQ-7010开发板的LED灯)
  • 深入理解JAVA虚拟机(三)
  • go高并发之路——本地缓存
  • 牛客周赛65(C++实现)
  • 练习LabVIEW第二十二题
  • K8S如何基于Istio重新实现微服务
  • git push关联的远程仓库
  • 京东商品详情API全攻略:返回值字段一网打尽
  • JsonPath 更便捷的JSON解析工具
  • Vue2自定义指令及插槽
  • AI 提示词(Prompt)入门 :ChatGPT 4.0 高级功能指南
  • 「C/C++」C++ STL容器库 之 std::list 双向链表容器
  • 不用梅森公式看流程图写式子 和看式子画流程图
  • JavaSE:16、Java IO
  • XJ05、消费金融|额度生命周期管理及额度产品设计
  • glibc中xdr的一个bug
  • python kafka 发送/接收 消息
  • 协议 HTTP