BUUCTF之web篇

server/2024/12/18 2:37:26/

第一题

[极客大挑战 2019]EasySQL

打开靶机后可以看到这是一个登陆的页面 我们可以尝试两种方式登录

  1. 弱口令爆破(bu’r’psuite)

  2. 通过SQL注入里的万能密码来跳过账户和密码验证的过程

    这里就需要万能密码a’or true #

    在这里单引号的作用是结束用户名或者密码的输入然后通过or和true并列起来 这样就相当于0 or 1 的结果还是1

    通过万能密码我们就可以登录进去查看到flag{db6800df-fe69-41cf-97e5-9d1c37585108}

第二题

[极客大挑战 2019]Havefun

打开靶机以后弹出这样一个页面 我们可以ctrl+u或者F12来查看一下网页源代码

这里有一段php代码 不难发现首先定义了一个 c a t 的变量然后通过 cat的变量 然后通过 cat的变量然后通过_GET[‘cat’]来输入一个数值并且赋值给cat echo(输出变量的意思) 后面做了一个判断 如果 c a t = d o g 的话就输 出 ′ s y c c a t _ c a t _ c a t _ c a t ′ 然后我们通过 U R L 给 cat=dog的话 就输出'syc{cat\_cat\_cat\_cat}' 然后我们通过URL给 cat=dog的话就输syccat_cat_cat_cat然后我们通过URLcat传一个dog的参数 然后我们就能得到flag了

flag{c9664684-1aea-4dda-8b8d-61147d1ceb6f}

<u>**$_GET**</u> 是 PHP 中的一个超全局变量,用于收集表单数据或者 URL 中的查询字符串。查询字符串是 URL 中 ? 后面的部分,由一系列的参数组成,参数之间用 & 符号分隔。每个参数由键和值组成,键和值之间用 = 连接。

  • $_GET:通过 URL 的查询字符串传递数据,数据在 URL 中可见。例如:http://example.com/page.php?name=John&age=30

  • $_POST:通过 HTTP 请求的请求体(body)传递数据,数据不会显示在 URL 中。

php语言里定义变量前需要加入$号

第三题

URL后面的问号 ? 用于分隔基本的文件路径和查询字符串

checkFile函数是通过传入的参数 $page 来进行的文件检查,而不是直接从 URL 中获取参数。所以我们需要以参数形式传递文件名【file=source.php】,将参数传给file,而不是直接访问文件路径【/source.php】。

isset() 函数用来检查一个变量是否已设置并且非 NULL。如果变量存在且不为 NULLisset() 会返回 true;否则返回 false

is_string() 函数用于检查一个变量是否是字符串类型。如果变量 $page 是字符串类型,is_string($page) 将返回 true;如果不是字符串类型,将返回 false

in_array()函数用于检查一个值是否存在于数组中。如果指定的值存在于数组中,in_array()返回true;否则,返回 false

mb_substr 是 PHP 中的一个多字节字符串函数,它允许你从更长的字符串中截取特定长度的子字符串。这个函数考虑了字符的多字节编码,因此特别适合处理 UTF-8 等多字节字符编码的字符串。

mb_substr 函数的基本语法如下:

string mb_substr(string $string, int $start, int $length = null, string $encoding = mb_internal_encoding())

  • string:要截取的原始字符串。

  • start:开始截取的位置(从 0 开始计数)。

  • length:要截取的长度。如果不指定或为负数,则截取到字符串的末尾。

  • encoding:字符串的编码。如果不指定,则使用 mb_internal_encoding() 的设置。

    mb_strpos函数用于查找一个字符串在另一个字符串中的首次出现的位置,这个函数支持多字节字符串。如果没有找到指定的字符串,则返回false`。

    urldecode() 函数用于对经过 URL 编码的字符串进行解码。URL 编码是一种将特殊字符转换为百分号(%)后跟两位十六进制数的过程,用于在 URL 中安全传输数据

打开靶机看到只有一个表情包 所以看一下网页源码

这里body标签给出了一个source.php的文件名 我们可以在URL中发送代开这个文件的请求

通过上面的代码审计 这里有三次对是否在白名单里的检查 还有两次对参数的处理

文件查询的第一个应该在白名单里 所以就只能写source.php或者在hint.php里

这里告诉我们flag在ffffllllaaaagggg里 在src里jpg的查询跳过了三层 所以 我们用…/跳过

这样我们就得到了flag


http://www.ppmy.cn/server/151058.html

相关文章

【算法】EWMA指数加权移动平均绘制平滑曲线

EWMA&#xff08;Exponentially Weighted Moving Average&#xff0c;指数加权移动平均&#xff09;是一种常用的时间序列平滑技术&#xff0c;特别适用于对过去数据给予不同的权重。以下是对EWMA算法的详细介绍&#xff1a; 一、核心思想 EWMA算法的核心思想是通过指数衰减来…

docker安装Elasticsearch和Kibana

上传文件 加载tar包 安装 1.安装elasticsearch 通过下面的Docker命令即可安装单机版本的elasticsearch&#xff1a; docker run -d \--name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \-e "discovery.typesingle-node" \-v es-data:/usr/share/elastics…

Keepalived+Lvs DR模式搭建

负载均衡集群搭建 DR模式lvs搭建 一.节点规划 DR模式需要三台虚拟机&#xff0c;三台虚拟机只需要有“公网”IP,但在这种模式下又多了一个VIP。对应的机器和IP如下&#xff1a; IP 主机名 节点 192.168.77.170 Dir 调度器dir 192.168.77.171 Rs1 真实服务器rs1 192…

phpSpider如何处理网页内容的动态加载问题

phpSpider处理网页内容的动态加载问题&#xff0c;主要采取以下几种策略&#xff1a; 一、分析并直接请求API 现代网站中&#xff0c;很多动态加载的内容是通过后端的API接口以JSON或XML等格式返回的。phpSpider可以通过分析网页的请求&#xff0c;找到这些API接口的URL&…

解读CVPR2024-论文分享|RepViT: Revisiting Mobile CNN From ViT Perspective

论文标题 RepViT: Revisiting Mobile CNN From ViT Perspective 论文链接&#xff1a; https://arxiv.org/abs/2307.09283 论文作者 Ao Wang, Hui Chen, Zijia Lin, Jungong Han, Guiguang Ding 内容简介 这篇论文探讨了在资源受限的移动设备上&#xff0c;轻量级视觉变…

Unity NTPComponent应用, 实现一个无后端高效获取网络时间的组件

无后端高效获取网络时间的组件 废话不多说&#xff0c;直接上源码m_NowSerivceTime 一个基于你发行游戏地区的时间偏移&#xff0c; 比如北京时区就是 8, 巴西就是-3&#xff0c;美国就是-5using Newtonsoft.Json; 如果这里报错&#xff0c; 就说明项目没有 NewtonsoftJson插件…

D94【python 接口自动化学习】- pytest进阶之fixture用法

day94 pytest的fixture详解 学习日期&#xff1a;20241210 学习目标&#xff1a;pytest基础用法 -- pytest的fixture详解 学习笔记&#xff1a; fixture的介绍 fixture是 pytest 用于将测试前后进行预备、清理工作的代码处理机制。 fixture相对于setup和teardown来说有以…

.Net WebAPI(一)

文章目录 项目地址一、WebAPI基础1. 项目初始化1.1 创建简单的API1.1.1 get请求1.1.2 post请求1.1.3 put请求1.1.4 Delete请求 1.2 webapi的流程 2.Controllers2.1 创建一个shirts的Controller 3. Routing3.1 使用和创建MapControllers3.2 使用Routing的模板语言 4. Mould Bind…