sqli-labs(三)
第五关:这关的重点是有联合查询的注入漏洞,但是页面不会显示查询信息,但是会有报错信息显示在页面上
这关是双查询注入,其实用报错注入和盲注都是可以注入的,但是我觉得这个双查询注入还是很有意思的,所以这关我们还是用双查询注入
的流程来走。
https://www.2cto.com/article/201303/192718.html
这里有篇文章讲的很不错了,我就不复述他的话了,里面有一句很重要:简单的一句话原理就是有研究人员发现,当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。
第一步:依然是使用order by判断表的列数
第二部:输入
id=1'%20union%20select%20count(*),concat((select%20user()),floor(rand()*2))%20as%20a,count(*)%20from%20information_schema.schemata%20group%20by%20a%23
比较长,不急,慢慢解释:主体依然是id=1' union select 1,2,3 from information_schema.schemata #
只不过这里讲1,2,3分别替换成了聚合函数,然后再后面加了个group by ,至于原因就是我们上面所提到的很重要的一句话(简单的一句话原理就是有研究人员发现,当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。)
这里的a是我们给concat((select%20user()),floor(rand()*2))起的一个别名(利用as)
rand()取0到1的随机值,floor()取整 ,这样的话使用concat将子查询(select user())的结果与0或1进行拼凑,组成xxx0或xxx1,所以结果是变化的。至于这样做的原因是为了让后面可以进行分组(也就是可以使用group by)。
现在知道整句话的意思后就可以进行后面的操作了,只需要将子查询换成其他的查询操作。
第三步:查询出所有的数据库名
http://localhost/sqli-labs-master/Less-5/
?id=1'%20union%20select%20count(*),concat((select%20schema_name%20from%20information_schema.schemata%20limit%201,1),floor(rand()*2))%20as%20a,count(*)%20from%20information_schema.schemata%20group%20by%20a%23
值得注意的是,子查询中不能使用group_concat了,不然就不会报错了,只能使用limit 来一行一行的查询
后面的查询表名,字段名以及数据内容的步骤我就不进行了,和前面几关一样
第六关:
和第五关是一样的,只不过将单引号换成了双引号
sqli-labs(三)的更多相关文章
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQLI LABS Advanced Part(23-37) WriteUp
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- SQLI LABS Challenges Part(54-65) WriteUp
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...
- SQLI LABS Stacked Part(38-53) WriteUp
这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...
- Sqli labs系列-less-5&6 报错注入法(下)
我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- 9 tips to improve spoken english
https://www.youtube.com/watch?v=FUW_FN8uzy0 1. don't translate everything into your native language ...
- 对内存分配的理解 自动变量 局部变量 临时变量 外部变量 字符串长度 C语言可以看成由一些列的外部对象构成
Status ListInsert_Sq(SqList *L,int i,LElemType_Sq e) { LElemType_Sq *newbase; LElemType_Sq *p,*q; if ...
- Django 的操作
安装: pip install Django 创建django工程 django-admin startproject mysite python manage.py startapp blog / ...
- [dpdk] service core
dpdk 17.11 增加了一组新的API,serivce core 如命名,就是用一组core跑service函数. 我自己的测试程序如下: https://github.com/tony-caot ...
- ES中TF-IDF算法
概念 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术.TF-IDF是一种统计方法,用以评估一字词对于一个文 ...
- MyBatis的核心组件
MyBatis的核心组件主要分为4个部分 SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分步构建的Builder模式 ...
- WARNING: firstResult/maxResults specified with collection fetch; applying in memory!
QueryTranslatorImpl @Override public List list(SessionImplementor session, QueryParameters queryPara ...
- inet超级服务器和守护进程
inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求.它可以为多种服务管理连接,当 inetd接到连接时,它能够确定连接所需的程序,启动相应的进程,并把 socke ...
- js模拟下拉框
html <label class="selectGroup"> <span class="selectP"></span> ...
- (1.7)mysql profiles分析
mysql profiles分析 作用:记录会话查询SQL所用时间 1.开启 2.使用 [2.1]先使用一个查询 [2.2]然后再运行 show profiles; [2.3]查看执行过程中每个状态和 ...