buuctf -2

news2024/9/28 19:17:39

目录

你竟然赶我走

大白

N种方法解决

[ACTF2020 新生赛]Include 1

php://filter的一些学习

[ACTF2020 新生赛]Exec

[强网杯 2019]随便注 


你竟然赶我走

1.下载文件,得到一张图片

 2.放进010分析,在文件尾得到flag

大白

1.根据题目提示,可判断该图片的宽高不够,没有显示出来,放到010里面分析

2.因为用二进制打开的.png文件的第二行中,前四位表示的是宽度,后四位表示的是长度,所以修改图片的高度

3.重新打开图片,得到flag

flag{He1l0_d4_ba1}

N种方法解决

1.下载文件,得到一个exe文件,但是无法运行

2.把文件后缀名修改成txt

3.好像是一个图片网站,在浏览器中打开,得到一个二维码,扫码得到flag

[ACTF2020 新生赛]Include 1

1.打开环境

 2.点击tips。可以发现是文件包含漏洞,昨天刚学。。该文件名为flag.php,那么flag应该就存在于此文件中,但是看源代码并没有查看到flag,猜测flag应该是在flag.php的源代码当中

 3.利用php://filter伪协议,构造payload

?file=php://filter/convert.base64-encode/resource=flag.php

4。使用base64解码,得到flag。可以发现flag是被注释了

php://filter的一些学习

 php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()file()file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

php://filter可以获取指定文件源码。当其与文件包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行,从而读取任意文件源代码

使用场景:
        1.知道flag文件地址后,可以直接用该协议读取文件内容
        2.有时候一些关键字被过滤也可以用该协议绕过
        3.有的flag隐藏在注释当中,可通过此协议查看源码获取flag
格式:xxx.php?xxx=php://filter/convert.base64-encode/resource=xxx.php
利用条件:不受allow_url_include和allow_url_fopen的限制

[ACTF2020 新生赛]Exec

1.输入一个ip,看一下

 2.使用bp抓包,用ls看看能不能查看文件,看到index.php

 3.查看根目录,看到flag这个文件

 4.使用cat查看flag

[强网杯 2019]随便注 

1.打开环境

 2.因为1'时报错,说明闭合符号为单引号

3.1' order by 2,得到字段数为2

 4.尝试使用union联合注入,1' union select 1,2#

 应该是过滤了select,不管是编码还是注释都不行,select一被禁用,联合查询和报错注入,布尔,时间盲注就都不可以使用。因此这个题使用堆叠注入。简单就是将一堆sql语句叠加在一起执行,使用分号结束上一个语句再叠加其他语句一起执行。

参考文章:sql注入之堆叠注入_Toert_T的博客-CSDN博客

学习一下show()函数MySQL show()函数详述_qq_36801966的博客-CSDN博客

show databases    //列出服务器可访问的数据库
show tables     //显示该数据库内相关表的名称
show columns from tablename;//显示表tablename的字段、字段类型、键值信息、是否可以用null、默认值及其他信息。

5.1’;show database;   发现行得通

 6.1';show tables;

 7. 1'; show columns from words; 爆words表

8. 1'; show columns from `1919810931114514`#    爆这个表

关于在这里使用 ` 而不是 ’ 的一些解释:

两者在linux下和windows下不同,linux下不区分,windows下区分。

在MySQL中 反引号 ` 用来区分保留字符与普通字符

单引号 ’ 或双引号主要用于 字符串的引用符号

反勾号 ` 数据库、表、索引、列和别名用的是引用符是反勾号 (注:Esc下面的键)

有MYSQL保留字作为字段的,必须加上反引号来区分!!!

如果是数值,请不要使用引号,要用那个反引号包裹起来

9.从之前的回显发现实际上都是words表内的,若想得到flag中的内容,需将其换为words表内的内容进行回显

换个角度来说,就是我们需要将1919810931114514表名换为words,并将flag的列名换为id

则需要以下三步:

    将表名words换为其他的,类似于word1
    将表名1919810931114514换为words
    将列名flag换为id

并通过之前的过滤规则发现并没有过滤掉alter、rename等关键字

于是构造payload:

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

rename - 重命名  重命名表wordsword1

alter - 变更列  变更表words中的列flagid 且其性质为varchar(100)

 10,改变数据库结构后,使用万能密码,得到flag

1' or 1=1#

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438592.html

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

相关文章

Python安装模块总失败?一次教你学会镜像安装

人生苦短,我用python 安装模块总是不成功? 这次一次性讲清楚~ 还是安装报错指路:点击此处跳转文末名片获取 为什么会出现安装模块失败? 首先我们要知道 其实大部分我们在用的模块, 都是歪果仁开发的, 然而我们在输入 “pip install 模块名” 的时候,…

「 JVM 」常见的垃圾收集器Garbage collector(GC)

「 JVM 」常见的垃圾收集器Garbage collector(GC) 参考&鸣谢 【JVM系统学习之路】常见垃圾回收器 山间木匠 Java 的七种垃圾收集器 | Linux 中国 Jayashree Huttanagoudar 带你走近Java虚拟机到底有哪些经典的垃圾收集器 码上遇见你 文章目录 「 JV…

2023.04.17 运行开源代码tinyriscv步骤及遇到问题

tinyriscv:https://gitee.com/liangkangnan/tinyriscv/tree/verilator 如有错误之处还请不吝赐教! 1、安装gcc工具链 下载gcc工具链(百度云链接,提取码:yaib),使用下面的命令解压到/opt/riscv32目录下: …

Spring定时任务常用Cron表达式

目录 一、SpringBoot定时任务 定时任务概述 创建定时任务 代码开启定时任务 执行结果 (单线程) 多线程处理定时任务 执行结果(并发) 二、Cron详解 Cron表达式是什么 Cron表达式的结构 每个域可出现的字符类型和各字符的…

花生采摘

[NOIP2004 普及组] 花生采摘 题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。 鲁宾逊先生和多多都…

linux 安装神州通用数据库 V7.0

linux 安装神州通用数据库 V7.0 操作系统、数据库1、官方下载链接2、windows客户端下载链接3、官方安装手册4、安装前准备3.1、创建安装用户3.2、以root 用户修改神通数据库安装包的所有者为shentong 用户3.3、以root 用户创建神通数据库主目录并修改所有者为shentong 用户3.4、…

学成在线笔记+踩坑(2)——【内容模块】课程基础查询,swagger+数据库字典+Httpclient+跨域

目录 1.【内容模块】需求分析 2.【内容模块】模块工程的结构 3.【课程查询功能1】通用 3.1 分析数据模型 3.2 mybatis-plus代码生成器 3.3 内容模块聚合api,model,service模块 3.4 接口设计分析 3.5 【基础模块】分页查询模型类 3.6【基础模块】日期配置类 3.7【内容…

Ae 入门系列之九:表达式

与使用关键帧相比,Ae 的表达式 Expression也用于控制属性值。 只不过使用表达式能简化操作,大大提高工作效率,使复杂动画的制作变得更加轻松。 ◆ ◆ ◆ 表达式语法基础 表达式基于标准的 JavaScript 语言。 如果熟悉脚本语言编程&#xff…

AutoGPT初次探索:免费体验、使用指南与心得总结

AutoGPT初次探索:免费体验、使用指南与心得总结 写在前面的废话一、部署 Auto-GPT二、试运行 Auto-GPT三、我踩过的坑四、后续探索 AutoGPT是一种基于GPT的自动化系统,为GPT提供了一个身体和内存,使其能够自主执行任务,例如市场分…

自己的完整c++ cuda包

pytorch关于c的所有文档集合 Welcome to PyTorch Tutorials — PyTorch Tutorials 2.0.0cu117 documentation 1.前置条件 使用编辑器clion,安装好cudatoolkit,cudnn,pytorch环境,编译工具gcc等等。 记得要设置好cudatoolkit的…

【C++】哈希的应用——布隆过滤器

哈希的应用——布隆过滤器 文章目录 哈希的应用——布隆过滤器一、布隆过滤器的概念与性质1.布隆过滤器的引出2.布隆过滤器的概念3.布隆过滤器的误判4.布隆过滤器的应用场景5.布隆过滤器优缺点6.如何选择哈希函数个数和布隆过滤器长度 二、布隆过滤器的实现1.布隆过滤器基本框架…

机器学习——SVM原理

问:支持向量机是基于经验风险最小化(ERM) 原则构建的,因此有更好的泛化性能。 答:错误。支持向量机是一种基于结构风险最小化原则构建的机器学习算法,它可以通过寻找合适的分割超平面来实现分类任务,并且具有较好的泛…

设计模式:软件设计原则

文章目录 1.开闭原则2.里氏代换原则3.依赖倒转原则4.接口隔离原则5.迪米特法则6.合成复用原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开…

QGIS绘制一张地图学习笔记01——配准栅格数据并解决配准导出的栅格文件不能显示的问题

1、进入配准工具主页面 首先,打开我们的绘制底图或者叫配准目标底图,我这里用的是高德的在线地图,具体qgis加载在线地图的方法见我前面的章节。加载的在线地图如下所示。 接着我们点击上方菜单栏的 栅格 菜单,点击菜单中的 配准工…

软件测试-测试用例案例及思维导图展示

目录 自动售货机的测试用例 一个杯子的测试用例 一支笔的测试用例 朋友圈点赞的测试用例 登录模块 购物车的测试用例 Windows对文件的复制粘帖功能的测试用例 自动售货机的测试用例 一个杯子的测试用例 一支笔的测试用例 朋友圈点赞的测试用例 功能测试 1点赞后是否显示…

docker安装rabbitMq集群

一 机器准备 准备三台虚拟机: 192.168.56.102 102.168.56.103 102.168.56.104 二 拉取镜像 在三台虚拟机上分别执行: docker pull rabbitmq:3.9.5-management 三 启动容器 103: docker run -d --hostname node2 --ad…

React--》React组件变化每次都会导致重新渲染,如何解决?

目录 React.memo useCallback useMemo React.memo React组件会在两种情况下下发生渲染 第一种:当组件自身的state发生变化时 第二种:当组件的父组件重新渲染时 第一种情况下重新渲染无可厚非,state都变化了组件自然应该重新进行渲染&…

7.1 基本运放电路(1)

集成运放的应用首先表现在它能构成各种运算电路上,并因此而得名。在运算电路中,以输入电压作为自变量,以输出电压作为函数;当输入电压变化时,输出电压将按一定的数学规律变化,即输出电压反映输入电压某种运…

【Web】WebHook详解

文章目录 webhook简介什么是 webhook?webhook 有什么用?webhook请求过程使用 webhookWebhook POST 或 GETWebhook 与轮询何时使用 webhookAsp .Net接受与处理接口处理 发送 WebHook和消息队列区别与联系来源 webhook简介 在当今高度连接的网络世界中,没有什么可以孤立地发挥…

Vue3二维码(QRCode)

可自定义设置以下属性: 扫描后的文本或地址(value),类型:string,默认 二维码大小(size),类型:number,单位px,默认 160 二维码颜色&…