sqli-labs第七题
Posted 爱十三的柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqli-labs第七题相关的知识,希望对你有一定的参考价值。
1.输入参数id
修改id值,页面无变化;提示为使用outfile
2.注入单引号
单引号触发SQL语法错误,但是没返回什么有用的信息。
3.测试id参数闭合条件
注入两个单引号
返回正常
注入id=\'1\'
返回异常,综合分析上面两种情况
?id=1\'\' | ?id=\'1\' | |
$id | 1\'\' | \'1\' |
结果 | 正常 | 正常 |
\'$id\' | \'1\'\'\' | \'\'1\'\' |
结果 | 正常 | 错误 |
从注入后的数据格式来看,id=1\'\' 和id=\'1\' 应该都能正常执行而注入id=\'1\'时页面返回异常;id=\'1\'\'\' 能正常执行,id=\'\'1\'\'将会产生错误,因为第一对闭合的单引号内是空的。所以单引号一定是id的闭合条件之一。
闭合单引号注入永真条件
返回错误,继续测试id参数闭合条件
闭合括号,返回错误
闭合两个括号,返回正常
为什么想到括号而且还是两个呢??不为什么,猜的。传入参数前后需要闭合的字符就那几个,常用的就是单引号,双引号和括号。
4.ORDER BY 爆列数
1,2,3均返回正常,当order by 4时返回错误
所以查询的列数为3列
5.使用outfile写文件
写文件需要得到一个当前用户拥有相应权限的文件夹的绝对路径,这里就作一下弊
了,毕竟靠手工盲注去爆一个这样的路径对萌新也太不友好了
在靶机上拿一个路径
构造注入语句 ?id=\')) union select 1,2,3 into outfile \'C:\\\\phpstudy_pro\\\\Extensions\\\\MySQL5.7.26\\\\data\\\\outfile.txt\'--+
失败,八成是权限问题,靶机数据库后台执行 SHOW VARIABLES LIKE "secure_file_priv";
值为NULL,NULL表示禁止写入。
参数说明如下:
secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。
-
ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
-
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
-
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
修改Mysql配置文件my.ini将secure_file_priv的值改为目标路径(我这里就是C:\\phpstudy_pro\\Extensions\\MySQL5.7.26\\data\\)然后重启Mysql
再次注入写文件操作
还是报错,但是实际上已经成功了,虽然可以通过读出文件写入到一个表中然后盲注来检查,偷个懒直接在靶机看吧
这种情况下一般都可以注入一句话木马,拿shell了。
以上是关于sqli-labs第七题的主要内容,如果未能解决你的问题,请参考以下文章