首页 > 编程语言 >【CTF | WEB】002、攻防世界WEB题目之simple_php

【CTF | WEB】002、攻防世界WEB题目之simple_php

时间:2024-08-13 20:56:47浏览次数:9  
标签:1234 WEB simple 代码 echo 002 flag2 __ php

文章目录

simple_php

题目描述:

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

解题思路:

打开场景

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

这段PHP代码包含了一个显示文件源代码的功能以及一些简单的条件检查。以下是对代码的逐行解释:

  1. show_source(__FILE__);

    • 这个函数会输出当前文件的源代码。__FILE__是一个魔术常量,它代表当前文件的路径。换句话说,访问这个PHP文件时,它会在页面上显示出自身的源代码。
  2. include("config.php");

    • 这行代码会包含并运行config.php文件的内容。假设config.php文件中定义了一些变量或函数,这些内容就可以在后续的代码中使用。
  3. $a=@$_GET['a'];

    • 这行代码从URL参数中获取参数a的值,并将其赋值给变量$a@符号用于抑制可能出现的错误或警告信息。
  4. $b=@$_GET['b'];

    • 这行代码与上面类似,从URL参数中获取参数b的值,并将其赋值给变量$b
  5. if($a==0 and $a){ echo $flag1; }

    • 这是一条条件语句,如果$a同时满足两个条件:$a==0$a本身的值为真,则会输出变量$flag1的值。
  6. if(is_numeric($b)){ exit(); }

    • 这行代码检查$b是否为数字。如果$b是数字,则脚本会立即停止执行。
  7. if($b>1234){ echo $flag2; }

    • 如果变量$b的值大于1234,则输出变量$flag2的值。

通过阅读代码发现需要同时满足 a==0 且 if a 为真,b 不是数字且 b>1234 才会返回 flag。

原理

php中有两种比较符号

=== 会同时比较字符串的值和类型

== 会先将字符串换成相同类型,再作比较,属于弱类型比较

1.php中的弱类型比较会使‘abc’ == 0为真,所以输入a=abc时,可得到flag1,如图所示。(abc可换成任意字符)。

2.is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,且php中弱类型比较时,会使(‘1234a’ == 1234)为真,所以当输入a=abc&b=1235a,可得到flag2

标签:1234,WEB,simple,代码,echo,002,flag2,__,php
From: https://blog.csdn.net/2401_86105925/article/details/141173586

相关文章

  • 【题解】 [NOIP 2002 普及组] 产生数
    题目描述题目大意给定\(k\)个规则,规则为“使一位数可变换成另一个一位数”。求整数\(n\)根据规则经过若干次(可以为0次或多次)变化,能生成的整数个数。思路该题主要考察:Floyd传递闭包,高精度乘法。显而易见,规则具有传递性。举个例子,1可变换成2,2可变换成3,则1可变换成3。当然......
  • Web语义化及实际应用
    你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧!是什么?使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。为什么?有利于被搜索引擎搜索有利于无障碍阅读增强代码的可读性、可维护性怎么做避免使用<div>或<span>标签来......
  • 基于WEB的多媒体素材管理库/计算机毕设
    摘  要随着小视频的兴起,个人多媒体素材越来越多,使用多媒体素材管理库管理多媒体素材,不仅实现了智能化管理,还提高用户体感,给用户提供便利的查询多媒体素材功能。该管理库通过MVC的编程设计方式,使用了了Java语言和MySQL存储数据。该系统采用了一个基于SSM的框架结构,系统的......
  • WebSockets:原理、握手及代码实现
    1.WebSockets原理WebSockets是HTML5标准的一部分,旨在为Web应用提供全双工通信能力。与传统的HTTP请求不同,WebSockets连接一旦建立,就可以在客户端和服务器之间自由传输数据,而不再需要每次通信都重新建立连接。工作流程:建立连接:客户端通过HTTP协议发起WebSocket握......
  • 基于django+vue基于web技术的课程思政元素信息交流平台的设计与探索【开题报告+程序+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育体系中,课程思政作为提升大学生思想政治素质的重要途径,日益受到重视。然而,当前课程思政资源的整合与分享机制尚不完善,存在信息孤......
  • 基于django+vue基于web点餐小程序的个性化推荐演示录像22023【开题报告+程序+论文】计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化时代,餐饮行业正经历着前所未有的变革。随着智能手机的普及和移动互联网技术的飞速发展,点餐小程序已成为连接消费者与餐厅的重要桥......
  • HTTP请求错误:System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。
    调用有赞API时,报如下错误:HTTP请求错误:System.Net.WebException:请求被中止:未能创建SSL/TLS安全通道。经过排查得知,有赞的的api仅支持TLSv1.2协议版本我的程序使用的.NETFramework4.0不支持TLSv1.2协议版本 .NETFramework4.0Ssl3、Tls.NETFramework4.5-4.6.2......
  • 时下最火AI绘画工具comfyui和webui的差别和优劣势,选择最适合自己的AI工具
    ComfyUI简介:ComfyUI是一个高度模块化和灵活的用户界面,专注于提供复杂的图像处理和生成功能。它通常被用作高级用户和开发人员的工具。优点:高度模块化:ComfyUI允许用户通过模块化组件来构建自己的图像处理流程。用户可以自由组合和配置这些组件,以满足特定需求。......
  • Stable Diffusion教程|SD WebUI必备插件安装 菜鸟轻松成高手
    一个刚学AI绘画的小菜鸟怎么快速成为StableDiffusionde的高手?答案就是SD插件,只要学会使用SD的各种插件,帮你写正向和负向提示词,修复人脸/身体/手指,高清放大图片,指定人物pose,图片微调等等都可以轻松搞定,善用插件是成为高手必经之路。目录1插件安装方法2基础插件介绍3......
  • 【待做】【WEB安全】浅谈JSONP劫持漏洞
    一、JSONP二、JSONP劫持示例三、JSONP劫持绕过方法3.1Referer过滤(常规)不严格3.2空引用绕过3.3回调可以定义引起的安全问题3.4测试HTML代码四、JSONP修复JSONPJSONP的全称是JSONwithPadding,是一种基于JSON格式来解决跨域请求资源的方案。由于......