【郑大二年级信安小学期】Day4上午:Bool盲注时间盲注堆叠查询post注入HTTP头部注入ua字段

目录

 

0 录制文件

1 SQL注入-布尔盲注

1.1 布尔盲注优缺点

1.2 先看一下第八关嗯页面特征

1.3 步骤

1.4 常用函数

1.5 判断是否字符型

1.6 判断闭合

1.7 查询库名

1.8 查询数据表

1.9 获取字段名

1.10 获取数据

1.11 布尔盲注缺陷

2 时间盲注

2.1 基础知识

2.2 判断注入点

2.2 构造 

2.3 假设法

2.4 获取库名

2.5 获取数据表

2.6 获取字段名

2.7 获取数据

3 堆叠查询

3.1 判断有没有堆叠

4 五种注入方式

4.1 post注入

4.1.1 抓取一下报文

4.1.2 判断闭合类型

4.1.3 查询数据库

4.2 http头部注入

4.2.1 正确登录

4.2.2 添加单引号

4.2.3 判断闭合

4.2.4 查询数据库

4.2.5 查询数据表段数据

4.2.6 注入点在cookee字段

4.2.7 ua字段


 

0 录制文件

录制:的快速会议
日期:2025-07-03 08:38:42
录制文件:https://meeting.tencent.com/crm/2pvQBe3j36

1 SQL注入-布尔盲注

1.1 布尔盲注优缺点

1.2 第八关页面特征

页面没有报错,也没有显示位

猜库名,页面报错

1.3 步骤

1.4 常用函数

1.5 判断是否字符型

一个单引号正常返回

1.6 判断闭合

注释之后正常返回,无闭合

1.7 查询库名

id=1' and substr((select database()),1,1)='b'--+

字母a不对,就依次往下改,a-z,第一个肯定是字母

用burp抓包,进行爆破

第一个字典是数字,第二个字典是字母

开始攻击

对长度查询

依然用burp爆破

 

依然对长度进行排序

从上到下组合字母,发现库名为security

 

1.8 查询数据表

查询的还是系统库,table_name from information…

id=1' and substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1)='b'--+

然后依然放到burp里进行爆破

查询结果:id username

对长度排序,基本<947的都为真,可以得到所有表名

表名区分:当数据不连贯的时候,标识表名到此为止

第一张表到6

第二张表从8开始

可以一张表一张表的查询,用limit限制,在burp里禁止有空格,用➕代替

再去攻击一下,发现这次数据正常

 

不用datebase(),直接根据库名直接指定security

1.9 获取字段名

查的是column,找的是columns

id=1' and substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1)='e'--+

用具体库名指定更好

1.10 获取数据

id=1' and substr((select username from users limit 0,1),1,1)='e'--+
id=1' and substr((select group_concat(username) from users),1,1)='e'--+

直接从users表查询,用limit限制,第一个用户查完去查第二个

去抓包一下

长度排序

数据:dump

这是对单个字段进行猜测的

也可以进行同时猜测的

1.11 布尔盲注缺陷

所有字符都是一个个猜出来的,速度非常慢

2 时间盲注

2.1 基础知识

2.2 判断注入点

时间盲注

不管用单引号还是括号,都是you are in 

假设存在数字型时间盲注

看一下正常网络请求时间

再用时间盲注函数去发送请求

在加上括号去请求

一个不够加两个

然后去猜是不是字符型,添加单引号

这时候发现,页面显示时间7秒,正常2秒,睡眠5秒

说明存在字符型时间盲注

2.2 构造 

构造与布尔盲注一样

2.3 假设法

id=1' and sleep(5)--+

2.4 获取库名

id=1' and if(substr((select database()),1,1)='a',sleep(5),0)--+

截取函数

然后去抓包

!这时候不是对长度排序

是对到达时间排序

超过5秒钟的,是正常相应

根据前面的数字对字符排序

2.5 获取数据表

id=1' and if(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,1)='a',sleep(5),0)--+

依然对到达时间排序

简化一下就是用limit限制成单个表名

也可以下载一下用ai排序

2.6 获取字段名

2.7 获取数据

 

3 堆叠查询

可以用分号把前面的结束,然后再写一条语句

在38关

3.1 判断有没有堆叠

或者直接插入一条语句(直接插入删除数据库函数)

删除之后再访问,就访问不到了

删除库之后需要在创建一下数据库,就可以正常使用

看网站源码

语句是执行数据库语句的函数,可以执行多条命令

4 五种注入方式

主要分为三种

4.1 post注入

11关 万能密码

成功登陆原因:

可以直接把用户输入插入到查询语句中

密码是随便输入的

因为用户名为真,但是用户名与密码之间是or连接,用户名里有“1”,有一个真就可以登陆

存在万能密码,必定存在数据库注入漏洞

用户名密码随便输,再去登陆还是成功登陆

只要有"1",就可以登陆,1就是代表真

如果用户名不存在,就在密码那里构造,反之在用户名构造。

4.1.1 抓取一下报文

发送到重放器

添加单引号验证,页面直接报错,说明存在注入漏洞

不需要判断数据类型,都是字符型

4.1.2 判断闭合类型

4.1.3 查询数据库

注:post注入可以存在空格的,但是在burp不能存在空格

 

4.2 http头部注入

20关

4.2.1 正确登录

需要登录之后再验证,这时候需要知道正确账号密码:admin,admin

登陆成功,会在响应报文有一个set cookie字段

4.2.2 添加单引号

页面还是报错的

4.2.3 判断闭合

手动闭合

4.2.4 查询数据库

选择报错注入漏洞

手动闭合不能去

然后当前的数据库就出来了

4.2.5 查询数据表段数据

4.2.6 注入点在cookee字段

注入方式:用布尔盲注去攻击就好

4.2.7 ua字段

也要登陆之后去验证

发送到burp

添加单引号还是报错

添加单引号1,成功

然后再插入之前的

查询到了数据库

下面是源码文件:

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

如何设计一个“真正可复用”的前端组件?

🧱 如何设计一个“真正可复用”的前端组件?🔧 一个按钮可以写10次,也可以封装一次复用全场;组件是前端的积木,而设计模式才是组装它们的说明书。你真的在写“可复用”组件吗?🧠 什么…

AlpineLinux安装RabbitMQ及其管理界面

AlpineLinux安装RabbitMQ及其管理界面 本文以 alpine linux 的 3.21版本为例,演示对于 RabbitMQ 在Linux 下的安装,其他发行版本大同小异。主要是包管理软件的命令区别,以及在线仓库提供的 RabbitMQ 版本差异而已。 (一)安装 Erlang 因为 RabbitMQ 是用 Erlang 语言编写…

3S技术+ArcGIS/ENVI全流程实战:水文、气象、灾害、生态、环境及卫生等领域应用

系统梳理3S技术的核心理论与实战应用,涵盖ArcGIS与ENVI软件操作、空间数据管理、地图投影转换、遥感影像解译、DEM地形分析、空间插值建模等关键技能,并结合农业、气象、生态、灾害等跨学科案例,提供从数据获取到高级可视化的完整解决方案。无…

弹窗中el+table,二次打开弹窗,选择列会携带第一次选择的数据

1第一次打开弹窗选择的数据,正确,然后关闭弹窗再次打开弹窗,重新选择,第二次的数据,错误在打开弹窗/关闭弹窗等位置全部做了置空处理,以下是代码:最后的原因是:el-dailog 自带缓存&a…

RocketMQ在Spring Boot中的详细使用指南

📋 目录 🚀 RocketMQ简介 什么是RocketMQ? 核心概念 🏗️ 基础架构组件 📝 重要概念解释 🔧 环境搭建 1. RocketMQ服务端安装 Docker方式(推荐初学者) 手动安装方式 2. 验证安装 🏗️ Spring Boot集成配置 1. 添加依赖 2. 配置文件 application.y…

基于Java+Springboot的医院档案管理系统

源码编号:S597源码名称:基于Springboot的医院档案管理系统用户类型:多角色,用户、医护人员、管理员数据库表数量:11 张表主要技术:Java、Vue、ElementUl 、SpringBoot、Maven运行环境:Windows/M…

Pandas 学习教程

目录 定义 基本操作 一维数组操作 二维数组操作 数据选择过滤 数据处理 数据清洗 数据转换 数据分析 排序 分组聚合 数据透视表 高级操作 合并数据 时间序列处理 自定义函数调用 数据可视化集成 数据导出和导入 大数据分块处理 定义 全称: panel da…

QueryWrapper 类的作用与示例详解

通俗易懂的解释想象一下你去图书馆找书:QueryWrapper 就像是一个智能的图书管理员你告诉管理员你的需求:"我要找计算机类、2020年后出版的、作者是张三的书"管理员会根据你的要求组合查询条件,然后去书库帮你找书在编程中&#xff…

【PyTorch】PyTorch中torch.nn模块的循环层

PyTorch深度学习总结 第九章 PyTorch中torch.nn模块的循环层 文章目录PyTorch深度学习总结前言一、循环层1. 简单循环层(RNN)2. 长短期记忆网络(LSTM)3. 门控循环单元(GRU)4. 双向循环层二、循环层参数1. …

Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。

Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。新建用来放置软件安装包的目录 mkdir /home/software 配置目录所有者为 ubuntu 用户: chown ubuntu /home/software将软件安装包上传到 /home/software配置 JDK-8 新建 jdk 安装目录 mkdir /usr/ja…

工作中用到过哪些设计模式?是怎么实现的?

1. 单例模式(结合 Spring Component)场景:配置中心、全局状态管理 Spring 实现:java// 自动注册为Spring Bean(默认单例) Component public class AppConfig {Value("${server.port}")private in…

Leetcode 3609. Minimum Moves to Reach Target in Grid

Leetcode 3609. Minimum Moves to Reach Target in Grid 1. 解题思路2. 代码实现 题目链接:3609. Minimum Moves to Reach Target in Grid 1. 解题思路 这一题我一开始走岔了,走了一个正向遍历走法的思路,无论怎么剪枝都一直超时。后来看了…

工作流引擎:IDEA没有actiBPMN插件怎么办?

文章目录一、问题描述二、替代方案一、问题描述 我们在学习activiti7工作流引擎的时候,需要设计流程图。 一般推荐的就是使用IDEA插件actiBPMN进行开发。 但是,这个插件在IDEA2019后的版本都不在支持。 也就是搜不到 那么,怎么办了&#x…

Android音视频探索之旅 | CMake基础语法 创建支持Ffmpeg的Android项目

一.CMake语法 CMake语法非常多,我们知道如何导入静态库和动态库以及最基础的使用,目前是够用的。其它方面则根据实际项目同步学习。 1.1.基础语法-常用 cmake_minimum_required:指定cmake最小版本include_directories:引入&#x…

React Native 初始化项目和模拟器运行

中文官方文档:https://reactnative.cn/docs/environment-setup 英文官方文档:https://reactnative.dev/docs/getting-started-without-a-framework#step-1-creating-a-new-application 创建新项目 1、初始化 # 如果你之前全局安装过旧的react-native-cli…

20250706-5-Docker 快速入门(上)-创建容器常用选项_笔记

一、创建容器常用选项1. 创建容器常用选项1)常用选项创建容器常用选项交互式选项:-i:保持标准输入打开,允许交互式操作-t:分配伪终端,使容器像传统终端一…

插值与拟合(3):B样条曲线

在路径规划问题中,通常会用到B样条来平滑路径,本文实现并封装了三次准均匀开放B样条曲线,供大学学习使用。作者提供了三套代码方案。可以用于不同平台:方案1:MATLAB;方案2:标准C;方案…

[免费]基于Python豆瓣电影数据分析及可视化系统(Flask+echarts+pandas)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的于Python豆瓣电影数据分析及可视化系统(Flaskechartpandas)【论文源码SQL脚本】,分享下哈。项目介绍随着如今电影越来越多,各种各样的烂片和捞钱的商业片也层出不穷,而有意…

SQL127 月总刷题数和日均刷题数

SQL127 月总刷题数和日均刷题数 withtemp as (selectDATE_FORMAT(submit_time, "%Y%m") as submit_month,count(question_id) as month_q_cnt,round(count(question_id) / day(last_day(max(submit_time))),3) as avg_day_q_cntfrompractice_recordwhereyear(submit…

unity luban接入

1.找到luban官网并下载他的例子和.net8.0的sdk安装 官网地址如下 快速上手 | Luban 参考大佬教程如下 Luban新版本接入教程_哔哩哔哩_bilibili 2.找到他的luban_examples-main示例下的两个文件MiniTemplate和tool 3.MiniTemplate这个文件复制一份到项目工程下,自…