目录

  • 1 堆叠注入概述
    • 1.1 定义
    • 1.2 与union联合查询注入的对比
    • 1.3 局限性
  • 2 堆叠注入实验简介
    • 2.1 实验平台
    • 2.2 实验目标
  • 3 堆叠注入实验步骤
    • 3.1 前戏
    • 3.2 判断注入点及注入类型
    • 3.3 尝试使用union查询
    • 3.4 union注入获取库名表名字段名
    • 3.5 堆叠注入
    • 3.6 实验结果
  • 4 总结

1 堆叠注入概述

1.1 定义

  1. 英文为 stacked injection。
  2. 在SQL数据库中,每条语句是以;分开的,堆叠注入就是一次性注入并执行多条语句(多语句之间以分号隔开)的注入方式。

1.2 与union联合查询注入的对比

  1. union联合查询注入执行的语句类型是有限的,可以用来执行查询语句。
  2. 堆叠注入可以执行的是任意的语句,如增删改等。
  3. 另外的,如布尔盲注延时盲注等其他语句也可以并到多语句中执行,只是没什么必要。

1.3 局限性

  1. 多语句执行受数据库类型、API、数据引擎的限制,有的不能实现。
  2. 增删改也收到用户权限的限制。

2 堆叠注入实验简介

2.1 实验平台

  1. 靶机:CentOS7安装docker,利用docker部署sqli-labs来作为实验平台。具体部署过程可以参考文章《Docker上搭建sqli-labs漏洞环境》。
  2. 真实机:本实验利用火狐浏览器来实现,为方便注入过程的编码,建议安装一个扩展插件harkbar,安装过程参考《HackBar免费版安装方法》由于该教程中的2.1.3harkbar我安装后无法正常使用,就安装了HackBar Quantum来代替。
  3. 靶机与真实机桥接到同一局域网中。

2.2 实验目标

  1. 使用堆叠注入往第38关数据库注入新账号;
  2. 查询新账号是否注入成功。

3 堆叠注入实验步骤

3.1 前戏

  1. 真实机打开火狐浏览器,访问靶机IP地址,出现下图,可以不重置实验平台,直接点击Page3进入堆叠实验的关卡。
  2. 找到第38关进入,初始界面如下:

3.2 判断注入点及注入类型

  1. 输入参数为?id=1可以看到数据库成功返回第一个账户账号及密码。修改id=2则是返回第二个账号密码,说明id是一个访问者可以控制输入的参数且页面会根据参数进行响应,是一个注入点。
  2. 修改参数为?id=1'可以看到数据库没有回显账号密码,同时提示错误信息如下,分析错误提示可知该注入参数为字符型,且为单引号闭合。
  3. 修改参数为?id=1'and '1'='1,根据反证法可知,该参数确实为单引号闭合的字符型,后续构成注入语句需要格外注意闭合单引号。具体判断方法请查看文章《反证法:判断注入类型是数值型还是字符型》

3.3 尝试使用union查询

  1. 目的:判断能否使用union联合查询注入。
  2. 修改参数为?id=1' order by 3--+,页面正常显示,当修改参数为4时,页面显示错误,说明回显内容有3列。
  3. 修改参数为?id=-1' union select 1,2,3--+,可以看到2和3列数据可以回显。说明可以尝试union联合查询注入。

3.4 union注入获取库名表名字段名

  1. 目的:为了往数据库中注入新的账号密码,我们需要知道账号密码是在哪个表哪些字段中,因此需要先用union联合注入获取相关信息。
  2. 获取库名。修改参数为?id=-1' union select 1,2,database()--+,发现本站点数据库为security。
  3. 获取表名。修改参数为?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+,发现该数据库下公有4个表,其中有个users的表,是我们注入的目标。
  4. 获取字段名。修改参数为?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name = 'users'--+,发现该表格下公有3个字段。
  5. 按管理我们也获取一下字符内容吧,虽然该步骤不是本实验所必须的。修改参数为?id=-1' union select 1,2,group_concat(id,':',username,':',password) from users--+,发现有一堆账号。

3.5 堆叠注入

  1. 目的:往后台数据库增加一个账号。
  2. 修改参数为?id=1';insert into users(id,username,password) values ('38','less38','hello')--+,语句执行后页面如下。

3.6 实验结果

修改命令为?id=38,查询结果如下,实验成功。

4 总结

  1. 了解堆叠注入与union联合查询注入的区别;
  2. 了解堆叠注入的限制性因素;
  3. 掌握手动堆叠注入的方法。

【SQL注入07】堆叠注入基础及实操(基于sqli-labs-less38)相关推荐

  1. sql注入之堆叠注入

    一.堆叠注入的原理 mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在 ...

  2. 07_SQL注入_堆叠注入绕过注入

    07_SQL注入_堆叠注入&绕过注入 1.堆叠注入 1.1 注入理论 谈及堆叠,顾名思义:就是多条语句一同执行.实际开发中,部分数据库支持多条SQL语句同时执行,在这样的场景下进行SQL注入, ...

  3. 盲注、报错注入、宽字节注入、堆叠注入学习笔记

    文章目录 一.盲注 二.报错注入 什么是报错注入 报错注入原理 报错注入的场景 常用报错函数 1.updatexml()(是mysql对xml文档数据进行查询和修改的xpath函数) 2.extrac ...

  4. SQL注入之堆叠注入(sql-lab第38关)

    什么是堆叠注入 在SQL中,分号(;)是用来表示一条SQL语句结束的.试想一下我们在分号结束一个SQL语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入.而堆叠注入可以执行的是任 ...

  5. mysql 堆叠查询_SQL 注入方法 - 盲注、报错注入、UNION查询注入与堆叠注入

    盲注 关键点是 根据页面返回内容分析 Payload 中的问题是否为真,然后通过多次测试遍历出想要的数据 布尔盲注 目标地址:http://newspaper.com/items.php?id=2 对 ...

  6. (17)网络安全:cookie注入、二次注入、DNSlog注入、中转注入、堆叠注入的原理及注入过程

    目录 cookie注入 sqli-lasb-master less-21 方法一:用burpsuite进行抓包后修改 方法二:安装火狐的cookie manager等插件进行修改cookie 第一步: ...

  7. 计算机应用基础简单实操,浅谈《计算机应用基础》实操课的教学管理

    [摘 要] 本文就如何提高学生的计算机基本操作能力,以计算机实操课的教学管理为主线,通过严谨的课堂组织和科学的辅导方法两方面进行论述. [关键词] 计算机 基本操作能力 课堂组织 辅导方法 随着全球信 ...

  8. 学会计为什么要学计算机基础,会计实操为什么要学习手工做账?

    随着会计电算化的迅速发展,越来越多企业使用财务软件做账.这让多数会计工作者都产生同样的疑惑:"现在还有必要学习手工做账吗?" 现在会计还有必要学习手工帐吗? 手工帐,即全手工记账, ...

  9. 002_韦东山嵌入式Linux应用开发基础_实操碰到的问题集锦

    嵌入式Linux应用开发基础_韦东山教程思考笔记 配合<嵌入式Linux应用开发完全手册V5.1_IMX6ULL_Pro开发板> 文件目录 访问根/目录下,Filesystem Root目 ...

最新文章

  1. ORA-25153: Temporary Tablespace is Empty
  2. JavaScript 位运算总结拾遗
  3. Razor Engine,动态脚本语言,mvc上的语法,适用于文件内容生成,静态网页生成等。...
  4. 服务器系统一键功能安装,一键安装服务器系统
  5. java中if判断季节_Java判断用户输入月份的季节
  6. [BUUCTF-pwn]——inndy_rop
  7. 【luogu 2709 / BZOJ 3781】小B的询问
  8. linux 设备数 of,linux下devicetree中惯用的of函数
  9. PPTP与Open×××区别
  10. 大数据学习笔记30:搭建高可用Hadoop集群
  11. 我肝了一个月,给你写出了这本 Java 开发手册!
  12. 通达信副图指标公式:买卖黄金线(抄底用)
  13. 黑客如何让脚本定时执行
  14. Linux操作系统中netstat命令常见用法
  15. qt 分辨率问题 安卓_Qt for Android dp转换
  16. Cesium专栏-气象要素(温度、降水)色斑图制作
  17. Unity 基础纹理
  18. Java—mysql缓存导致查询结果与数据库不一致
  19. 淘宝直播接口分析!!! 测试!
  20. Redis实战篇一 (短信登录)

热门文章

  1. (android高仿系列)今日头条 --新闻阅读器 (一)
  2. linux中的“~”,“./”,“/“具体含义
  3. python初级教程 doc_Python 入门教程 中文WORD版
  4. Android实现长按录音松开保存、播放及根据声贝动画展示
  5. 【Python实战】如果没有音乐,生活就是一个错误 :n首回味无穷的歌,总有一曲深得你心哦~
  6. 从Delta 2.0开始聊聊我们需要怎样的数据湖
  7. 网络基础之二进制、十进制、八进制、十六进制的转换
  8. shell魔幻盒子_嵌入式操作系统实训报告——魔幻盒子
  9. 20221206今天的世界发生了什么
  10. freenom 免费续期