sqli-labs第二关 详解
学会了第一关,时隔多天来到了第二关,怎么说了没有看wp就给做出来了。
首先,我是自己先判断了下,这个是什么注入
?id=1' 不行
?id=1' or '1'='1--+ 也不行
然后又尝试了下
?id=1 and 1=1 页面显示正常
?id=1 and 1=2 页面又错误回显
然后这就是数字注入了
于是我们去查库,跟第一关的思路是一样的。然后就爆出了库。如果不懂的可以点这个链接。
https://www.cnblogs.com/junlebao/p/13758919.html
sql注入一般步骤:
第一步:通过特殊的数据库查询语句
第二步:在数据库的错误返回中找到sql漏洞
第三步:利用sql语句猜解管理人员信息并登录管理员后台
判断注入类型
数字型注入
1. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1'时,因为有一个多余的"单引号"使查询语句错误
2. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1 and 1=1时,没有报错
3. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1 and 1=2时,由于1=2不成立,也会报错
满足这三个,基本上就是数字注入了
字符型注入
1. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1'时,数据库认为id叫做1'。查询之后发现没有这个id而返回错误。(在字符型注入中,需要考虑引号的闭合)
2. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' and '1'='1 在'1'='1之后没有加上'是因为传参时输入的内容已经被' '包围。
后台查询列数
使用order by试出数据库列数
url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' order by 数字 (如果试4时有错误,3时正确,那么列数为3)
找显示位
使用union select找出会返回客户端并显示的列。如果有3列时,应该这么写
url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,3
加入显示位是3,这就意味着数据库开放了5个“窗口”用来显示内容,用查询到的数据,在这些窗口显示数据
查库名
联合查询:select database();
下面是查看数据库的版本和数据库信息
假如显示位是3,http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,version,database()
查表名
找到库名以后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,table_name from information_schema.tables where table_schema='库名' (如果库名是字符型,此处库名要转成十六进制)
information_schema:
这是一个mysql自带的库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表列的数据类型与访问权限等,所以我们查询这个库
查列名
找到表之后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,column_name from information_schema.columns where table_name='表名' (如果表名是字符型,此处库名要转成十六进制)
如果表数或列数过多,可以在最后使用limit加上limit 0,5相当于检索1-5条信息
查具体数据
找到列之后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,group_concat("要查询的数据") from 表名
sqli-labs第二关 详解的更多相关文章
- upload-labs打关详解
1-19关 00x01 JS检查 方法一.修改javascript代码,将.php添加到允许上传的类型中 3.上传成功 方法二:绕过前端,通过burpsuit抓包,上传一张info.jpg图片,然后抓 ...
- sqli-labs第一关 详解
sqli-labs第一关 方法一:手工注入 方法二:sqlmap工具 两种方式,都可以学学,顺便学会用sqlmap,也是不错的.不多说,我们开始吧 方法一: 来到第一关,图上说我们需要一个数字的参数 ...
- 组件--Fragment(碎片)第二篇详解
感觉之前看的还是不清楚,重新再研究了一次 Fragment常用的三个类: android.app.Fragment 主要用于定义Fragment android.app.FragmentManager ...
- IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...
- XML详解:第二部分 XML Schema
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- PE文件格式详解,第二讲,NT头文件格式,以及文件头格式
PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) PS:本篇博客 ...
- Redis进阶实践之十五 Redis-cli命令行工具使用详解第二部分(结束)
一.介绍 今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分.话不多说,开始我们今天的讲解.如果要想看第一篇文章,地址如下:http: ...
- 前端技术之_CSS详解第二天
前端技术之_CSS详解第二天 1.css基础选择器 html负责结构,css负责样式,js负责行为. css写在head标签里面,容器style标签. 先写选择器,然后写大括号,大括号里面是样式. & ...
- “全栈2019”Java多线程第二十九章:可重入锁与不可重入锁详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- 使用tensorflow2识别4位验证码及思考总结
在学习了CNN之后,自己想去做一个验证码识别,网上找了很多资料,杂七杂八的一大堆,但是好多是tf1写的,对tf1不太熟悉,有点看不懂,于是自己去摸索吧. 摸索的过程是异常艰难呀,一开始我直接用capt ...
- 力扣Leetcode 面试题51. 数组中的逆序对 - 归并排序
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= ...
- Labview学习之路(六)条件结构
条件结构位于 函数---结构 子选版中.相当于c语言的switch语句, 结构: 分支选择器 分支器标签 分支子框图 可接数据类型 布尔型 布尔常量 真和假 错误信息簇 真和假 整型数值 单值 可 ...
- Android中的Activity四种启动模式(launchMode)
转载:http://blog.csdn.net/cjjky/article/details/7533110 我们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转 ...
- Google Kick Start 2020 Round C
ac代码 A. Countdown for循环跑一跑,没啥好说的. B. Stable Wall 如果\(s_{i,j} \ne s_{i+1,j}\),那么说明\(s_{i+1,j}\)必须在\(s ...
- Mybatis联合查询(一)
Mybatis的简单联合查询操作: 实体类: Employee: package com.test.mybatis; public class Employee { private Integer i ...
- Codeforces Round #668 (Div. 2)A-C题解
A. Permutation Forgery 题目:http://codeforces.com/contest/1405/problem/A 题解:这道题初看有点吓人,一开始居然想到要用全排序,没错我 ...
- Class 文件结构及深入字节码指令
JVM的无关性 与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序的“一次编写,到处运行” https://www.oracl ...
- Tomcat源码分析(下载、启动)
1.下载Tomcat源代码: https://tomcat.apache.org/download-80.cgi 2. 解压以及创建必要目录和配置 解压.新建catalina-home目录,同时将目录 ...
- Django启动框架自带原始页面(Django一)
1.安装,cmd中输入命令: pip install django (前提是python已安装完成,才可以使用pip这个python的库管理工具)ps:在cmd中使用pip命令安装时可能因为速度过慢而 ...