首页 > 编程语言 >【?】Web_XCTF_WriteUp | simple_php

【?】Web_XCTF_WriteUp | simple_php

时间:2023-11-28 13:12:50浏览次数:58  
标签:1234 Web PHP string simple 参数 字符串 php

题目

提示
小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

题目

分析

读代码:

<?php                  // php脚本的开始部分
show_source(__FILE__); // 对当前文件进行php语法高亮显示
include("config.php"); // 引用config.php文件
$a=@$_GET['a'];        // 收集GET表单中的字符'a'的值赋给变量a,当收集GET表单时出错,“@”符号可抑制错误诊断
$b=@$_GET['b'];
if($a==0 and $a){      // “==”为松散比较。当变量a(转换为整型)的值等于0,且变量a的值为TRUE(a不为空且a的值不为0)时
    echo $flag1;       // 输出变量flag1的值
}
if(is_numeric($b)){    // 当变量b为数字或数字字符串时
    exit();            // 退出当前脚本
}
if($b>1234){           // 当变量b的值大于1234时
    echo $flag2;       // 输出变量flag2的值
}
?>                     // php脚本的结束部分

根据代码内容,我们需要对脚本传参 a 和 b。
参数 a 不能为 false、不能为空、不能为 0,但可以通过一个非数值 0 的值转换为数值 0。
参数 b 不能为数字或数字字符串,但可通过其他类型的变量进行类型转换后等同于大于 1234 的值。


能满足参数 a 要求的有:

  • (?)float 值 0.xx(在 \((0,1)\) 范围的小数)
  • string 值以 0 或字符开头

能满足参数 b 要求的有:

  • string 值以大于 1234 的数字开头,拼接字符串

由于所有 GET 参数在 PHP 中都是字符串,所以当我们将诸如 “true” 或 “True” 作为 a 的参数传入时实际传入的是字符串,仍可得到 flag1 的值:


【?】但奇怪的是当我们将 0.1 或 0.9 作为 a 的参数时,我们未能得到 flag1 的输出:


用在线工具跑了一下证实 0.1 为 True 且 0.1 不为 0:

或许是 url 对参数进行了过滤?或者是系统对浮点数的精度存在限制?此处存疑。


故实际在 url 中能够传递的参数只有:
参数 a:以 0 或字符开头的 string 值
参数 b:以大于 1234 的数字开头,拼接字符串的 string 值


按要求对 url 传参 http://61.147.171.105:52312/?a=a&b=1235a

得到 flag。

Flag

Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

参考

PHP教程-菜鸟教程
PHP: 错误控制运算符-Manual
php中判断值真假-C_Unique-CSDN
PHP中的强制类型转换-硬核项目经理-腾讯云开发者社区
通过PHP GET传递布尔值-码农家园
PHP: 比较运算符-Manual
PHP: Float 浮点型-Manual

标签:1234,Web,PHP,string,simple,参数,字符串,php
From: https://www.cnblogs.com/Guanz/p/17856234.html

相关文章

  • 客户端相关知识学习(五)之什么是webView
      webview是什么?作用是什么?和浏览器有什么关系?Android系统中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件也就是说WebView是一个基于webkit引擎、可以解析DOM元素展现web页面的控件,它和浏览器展示页面的原理是相同的所以可以把它当做浏览器......
  • 客户端相关知识学习(十一)之Android H5交互Webview实现localStorage数据存储
      前言最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识webView开启支持H5 LocalStorage存储有些时候我们发现写的本地存储没有起作用,那是因为默认WebView没有开启LocalStorage存储。开启方法如下首先得有Webview控件:有人问我是不是需要写布局文件......
  • @SpringbootTest报错 javax.websocket.server.ServerContainer not availableJ情况解
    在使用springboot单元测试出现:11:11:10.799[main]ERRORo.s.b.SpringApplication-[reportFailure,870]-Applicationrunfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'serverEndpointExporter'definedincla......
  • 将Autodesk的AutoCAD嵌入WEB网页中在线查看、编辑、审阅DWG文档
    大家都知道猿大师办公助手支持把微软OFFICE和金山WPS可以完美嵌入到浏览器中,并实现在线编辑文档、表格和PPT等功能,但是还有很多人不知道:猿大师还可以把Autodesk的AutoCAD、DWGTrueView、DesignReview等软件嵌入到浏览器网页中,实现dwg、dxf等工程图在线查看、编辑、审阅等。下面......
  • PHP大文件分割上传详解
    这篇文章主要为大家详细介绍了PHP大文件分割上传,PHP分片上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关upload_max_filesize=2M//PHP最大能接受的文件大小post_max_size=8M//PHP能收到的最大POST值'memory_l......
  • Webshell混淆免杀的一些思路
    1、简介为了避免被杀软检测到,黑客们会对Webshell进行混淆免杀。本文将介绍一些Webshell混淆免杀的思路,帮助安全人员更好地防范Webshell攻击。静态免杀是指通过对恶意软件进行混淆、加密或其他技术手段,使其在静态分析阶段难以被杀毒软件或安全防护产品所检测出来的方法。静态免杀......
  • kore可扩展安全的Web 应用程序框架
    kore是基于c开发的web框架,可以让我们使用c以及python开发webapi,主要的特点是安全以及可扩展主要特性SNI支持http1.1支持websocket支持默认TLS支持可选后台任务内置参数校验基于acme的自动https权限分离设计可选异步pg访问模块热加载worker进程沙箱支持(基......
  • WEB网页在线编辑Word文档,开启修订功能,启用留痕、显示留痕并接受留痕
    在日常办公环境场景下,有时候会遇到帮助他人修改文档或者为文档提供修改意见,如果我们在文档中直接修改,其他人很不容易看到我们修改了哪个部分,如果一旦你的修改意见不被采纳,原作者还需要恢复原来的文档,这样为别人带来了更多的工作。如果用猿大师办公助手在网页中编辑OfficeWord文......
  • php mysql操作
    连接数据库mysqli_connect()mysql(host,username,password,dbname,port,socket);host:主机名或IP地址username:mysql用户名password:mysql密码dbname:使用的数据库port:mysql服务器的端口号socket:规定socket或使用已命名pipe断开数据库连接mysqli_close()boolmysqli_clo......
  • ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
    前言在ASP.NETCoreWebAPI中设置响应输出Json数据格式有两种方式,可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式,本文示例使用的是新的MinimalAPI模式。JSON序列化和反序列化库System.Text.JsonSystem.Te......