【新手入门】SQL注入之盲注

一、引言

在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办?

例如应用程序返回到一个"通用的"的页面,或者重定向一个通用页面(可能为网站首页)。这时,我们之前学习的SQL注入的办法就无法使用了。这种情况我们称之为无回显,如果页面有信息显示,我们称之为有回显。回显状态的页面就用之前学的SQL注入的方式,无回显的这种我们就可以采用盲注的手段。

二、有、无回显

有回显

pikachu靶场

无回显

是指当攻击者控制目标系统执行命令时,目标并不会直接返回结果,造成攻击者无法知晓自己的攻击行为是否成功。

无回显的两种情况

①有防护,注入失败:过滤掉攻击语句,再去数据库查询

②无防护,注入成功:对响应数据进行了加工,只显示一条 ,若数据库查询出来的数据超过了一条,就报错,说查不到数据或404。此情况可使用盲注

三、盲注

盲注,即在SOL注入过程中,SOL语句执行选择后,选择的数据不能回显到前端,我们需要使用一些特殊的方法进行判断或尝试,这个过程称为盲注。

SQL盲注分为两大类:基于布尔型SQL盲注、基于时间型SQL盲注。

四、Boolian布尔型盲注

通过一种比较手段来得到一个真假值(布尔值,true 1真、false 0假),根据真假值来断定数据是什么样子的。

手动爆破

布尔型盲注入查询长度

要查询当前库名,首先确定要查询的数据库的长度,再通过截取字符进行对比

vince' and length(database())>=4#

代码中的4需要我们从1开始试

可查询出的界面

不可查询出的界面

综上,可知数据库长度为4

布尔型盲注入获取数据库名

数据库常用字符如下:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz. @_
将这些字符和数据库中的每一个字符进行比较得到最终的数据库名
获取数据库第一个字符,输入

vince' and if(substring(database(),1,1)='p',1,0)

(这里p是爆破得到的)

一个一个爆破比较麻烦,建议用bp爆破

获取表

select table_name from information_schema.tables where table_schema=database() limit 0,1

获取列名

select column_name from information_schema.columns where table_name='users' limit 1,1

五、base on time时间型盲注

vince' and sleep(x)#

基于时间的延迟,构造一个拼接语句:

'vince'and if(substr(database(),1,1)='X'(猜测点),sleep(10),nu11#'

输入后,如果猜测正确,那么就会响应10秒,如果错误会立刻返回错误。

时间型盲注常用函数:sleep(x)、benchmark.如果sleep被防御掉了,可用另一个。或变换sElect、benCHmark等的大小写。

以上内容均为自己学习理解所得,如有错误,欢迎大家评论指正。

 

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

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

相关文章

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

青少年软件编程(Python)等级考试试卷(六级) ↓↓↓↓↓↓ 真题模拟测试 分数:100 题数:38 一、单选题(共25题,共50分) 下面代码的输出结果正确的是?( )import json json_str =’ [ “Alice”, “girl", 17,“New York”]’ data = json.loads(json_str) prin…

wordpress按不同页调用不同的标题3种形式

在WordPress中,可以通过多种方式根据不同的页面调用不同的标题。这通常用于实现SEO优化、自定义页面标题或根据页面类型显示不同的标题内容。 使用wp_title函数 wp_title函数用于在HTML的title标签中输出页面标题。你可以通过修改主题的header.php文件来实现自定义…

DeepSeek-R1 大模型实战:腾讯云 HAI 平台 3 分钟极速部署指南

引言:为什么选择 DeepSeek-R1? 近期,国产大模型 DeepSeek-R1 因其低成本、高性能的特点在全球 AI 领域引发热议。根据 Sensor Tower 数据,其发布仅 18 天便斩获 1600 万次下载量,远超 ChatGPT 同期表现。而腾讯云推出…

【Pytest】setup和teardown的四个级别

文章目录 1.setup和teardown简介2.模块级别的 setup 和 teardown3.函数级别的 setup 和 teardown4.方法级别的 setup 和 teardown5.类级别的 setup 和 teardown 1.setup和teardown简介 在 pytest 中,setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操…

使用Docker将ros1自定义消息通过rosjava_bootstrap生成jar包

文章目录 预准备环境rosjava_bootstrap坏消息好消息 环境安装docker安装rosjava_bootstrap仓库rosjava_center仓库修改rosjava_bootstrap代码拉取docker镜像放置自己的自定义消息 启动docker编译 预准备环境 rosjava_bootstrap rosjava_bootstrap是将自定义的ROS消息生成java…

《Python实战进阶》No 7: 一个AI大模型聊天室的构建-基于WebSocket 实时通信开发实战

第7集: 一个AI大模型聊天室的构建-基于WebSocket 实时通信开发实战 在现代 Web 开发中,实时通信已经成为许多应用的核心需求。无论是聊天应用、股票行情推送,还是多人协作工具,WebSocket 都是实现高效实时通信的最佳选择之一。本…

轮式机器人在复杂地形中如何选择合适的全局路径规划算法?

已思考完成 收起 嗯,用户问的是轮式机器人在复杂地形中如何选择合适的全局路径规划算法。首先,我需要理解复杂地形可能带来的挑战,比如崎岖的路面、动态障碍物、非结构化环境等等。轮式机器人在这里的运动控制需要考虑地形通过性、稳定性&…

Mysql100道高频面试题

一、基础概念 1. 什么是数据库?DBMS的作用是什么? 数据库:是按照数据结构来组织、存储和管理数据的仓库。它允许用户高效地访问和管理数据。 DBMS(数据库管理系统):是一种软件系统,用于创建和…

React底层原理详解

React中Element&Fiber对象、WorkInProgress双缓存、Reconcile&Render&Commit、第一次挂载过程详解 在面试中介绍React底层原理时,需遵循逻辑清晰、层次分明、重点突出的原则,结合技术深度与实际应用场景。以下是结构化回答模板:…

qt5的中文乱码问题,QString、QStringLiteral 为 UTF-16 编码

qt5的中文乱码问题一直没有很明确的处理方案。 今天处理进程间通信时,也遇到了qt5乱码问题,一边是设置的GBK,一边设置的是UTF8,单向通信约定采用UTF8。 发送端保证发的是UTF8字符串,因为UTF8在网络数据包中没有字节序…

解锁浏览器内置API,助力跨标签/跨页面数据通信

1 BrodcastChanner 概念 BroadcastChannel接口表示给定源的任何浏览上下文都可以订阅的命名频道。它允许同源的不同浏览器窗口、标签页、frame 或者 iframe 下的不同文档之间相互通信。消息通过message事件进行广播,该事件在侦听该频道的所有BroadcastChannel对象上…

Mysql-如何理解事务?

一、事务是什么东西 有些场景中,某个操作需要多个sql配合完成: 例如: 李四这个月剩下的前不够交房租了,找张三借1000元急用: (1)给张三的账户余额 减去1000元 updata 账户表 set money money -…

《deepseek FlashMLA :高效的 MLA 解码内核》:此文为AI自动翻译

FlashMLA GitHub - deepseek-ai/FlashMLA FlashMLA 是适用于 Hopper GPU 的高效 MLA 解码内核,针对可变长度序列服务进行了优化。 当前发布: BF16、FP16块大小为 64 的分页 kvcache 快速开始 安装 python setup.py install 基准 python tests/test_fl…

Windows对比MacOS

Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1:打开环境变量设置窗口步骤 2:添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1:打开终端步骤 2:编辑环境变量配置文件步骤 3&#xff1…

蓝桥杯 之 填空题-位运算与循环

文章目录 循环握手问题门牌制作-循环小球反弹幸运数艺术与篮球跑步 位运算3个1美丽的2024 位运算 可以关注这个Lowbit(x) 如何判断最低位是否是1? num&1 1就说明num最低位是1 循环 循环 握手问题 握手问题 思路分析: 可以直接计算出来&#xff…

Java进阶——反射机制超全详解

反射能在运行时动态操作类和对象的能力,极大地增强了程序的灵活性。但是反射的使用也伴随着性能开销和安全风险。本文将由博主带你一起深入探讨 Java 反射的核心概念、关键类和方法,以及在日常开发中的应用场景。 本文目录 一、反射的核心概念1. 运行时类…

OAK相机的抗震性测试

在工业环境中,双目视觉相机必须具备与工作环境同等的坚固性。鉴于部分客户会将我们的相机应用于恶劣环境(例如安装在重型机械上),我们依据EN 60068-2-6:2008标准对相机进行了振动耐受性测试。 测试涉及的相机型号包括&#xff1a…

Express MVC

1. 安装依赖 npm init -y npm install express npm install --save-dev typescript ts-node ejs types/node types/express tsc --init 2. 项目目录结构如下,没有的手动创建 /my-app/src/modelsuser.ts/viewsindex.ejsuserList.ejs/controllersuserController.ts…

apache-maven-3.2.1

MAVEN_HOME D:\apache-maven-3.2.1 PATH D:\apache-maven-3.2.1\bin cmd mvn -v <localRepository>d:\localRepository</localRepository> setting.xml <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Soft…

合并两个有序链表:递归与迭代的实现分析

合并两个有序链表&#xff1a;递归与迭代的实现分析 在算法与数据结构的世界里&#xff0c;链表作为一种基本的数据结构&#xff0c;经常被用来解决各种问题。特别是对于有序链表的合并&#xff0c;既是经典面试题&#xff0c;也是提高编程能力的重要练习之一。合并两个有序链…