极客大挑战 2019 EasySQL 1(万能账号密码,SQL注入,HackBar)

题目

在这里插入图片描述

做法

启动靶机,打开给出的网址
在这里插入图片描述

随便输点东西进去,测试一下
在这里插入图片描述

在这里插入图片描述

输入1、1’、1"判断SQL语句闭合方式

在这里插入图片描述

在这里插入图片描述

输入以上两个都是以下结果
在这里插入图片描述

但是,输入1’时,出现的是另外结果
在这里插入图片描述

在这里插入图片描述

输入1,1"时,SQL语句没有报错,只是提示我们输入的值是不对的,而输入1’时却有截然不同的结果,因此我们可以先假设SQL语句闭合方式是单引号

注:以下sql语句如’1" ’ 实际上是’1"’ ,这里只是为了快速区分

(1)一般情况下,SQL语句闭合方式为单引号

当用户名为1时,形成的sql语句是
select * from table_name where username=‘1’ and password=‘123’;

当用户名为1"时,形成的sql语句是正确的
select * from table_name where username='1" ’ and password=‘123’;

当字符串内需要包含双引号时,除了使用转义字符外,也可以使用一对单引号来包括字符串。此时字符串内的双引号被视为普通字符,无需特殊处理

同理,当字符串内需要包含单引号时,除了使用转义字符外,也可以使用一对双引号来包括字符串。此时字符串内的单引号被视为普通字符,无需特殊处理

补充

使用(转义字符)来判断SQL注入的闭合方式
原理:当闭合字符遇到转义字符时,会被转义,那么没有闭合符的语句就不完整了,就会报错,通过报错信息我们就可以推断出闭合符。

分析报错信息:看\斜杠后面跟着的字符,是什么字符,它的闭合字符就是什么,若是没有,则为数字型。
(但是在本题中有两个变量,这个方法不太适用)

当用户名为1’时,形成的sql语句是错误的
select * from table_name where username=‘1’ 'and password=‘123’;

第一个单引号和第二个单引号形成了新的闭合,剩余第三个单引号,组成的sql语句不正确,于是语句报错

因此,SQL语句闭合方式是单引号

(2)假设MySQL语句为双引号闭合

username输入1时,形成的sql语句是正确的
select * from table_name where username="1"and password=“123”;

username输入1"时,形成的sql语句是
select * from table_name where username=“1” "and password=“123”;
正确的SQL语句不可以出现一对双引号包含双引号的。所以上面这条应该出现SQL报错,但实际没有报错,因此我们假设的双引号闭合方式是不成立的

username输入的是1’,形成的sql语句是正确的,不会报错
select * from table_name where username="1’ "and password=“123”;
而然实际上这条语句报错了,因此我们假设的双引号闭合方式是不成立的

综上,我们可以推出SQL语句闭合方式是单引号

进行SQL注入

万能账号密码获取入口:
万能账号密码使用详解,渗透测试常用的入门级操作 - 知乎

由上得:该数据库的闭合方式为单引号

因此,在理解完以上网页内容后,我们回归该题

当我们不知道用户的账号并且不知道用户的密码时,可以使用万能账号
我们随便挑选一个——a or true #

但是它上面的万能账号都没有加单引号’或是双引号"

因此,综上,我们需要在a后面加上本题的闭合符号,“ ’ ” 得出我们所需的账号为a’ or true #

密码随便输即可(但是看到其他人通常这种情况都直接写一样的,不知道有啥玄机在里面,这里注意一下)
在这里插入图片描述

复制,回去题目提交flag
在这里插入图片描述

补充做法(使用HackBar,不过跟上面的大差不差)

自行下载HackBar V2

前提:
先看测试后的网址(与为刚从靶机点进来的网址进行对比),可以看到我们输入的账号密码都显示在url中,可知此处是get传参

补充:get传参——参数和 URI 之间用问号?隔开, 参数键值用等号=连接,然后参数之间用连接符&拼接起来
在这里插入图片描述

因为get传参为参数直接暴露在 URL 中,且网页文件名为check.php,只是处理登录校验的常见文件名,而非诸如 login.php(通过表单 POST 传参)等需要动用其他工具,则可直接使用HackBar 修改参数
在这里插入图片描述

点击启动靶机后给出的网址,弹出页面,按F12,选择HackBar V2(绿色图标那个)
在这里插入图片描述

按一下Load URL,即可获取当前页面的网址
然后随便输入用户名密码,进去后看看网址
在这里插入图片描述

我们直接看测试后多出的网址

username=后面跟的是账号

password=后面跟的是密码

因此,我们根据上面说的思路,把万能账号填进去,密码随便填,构造一下,复制

check.php?username=a' or true %23& password=1

然后填进Load URL得出的网址后面,点击Execute执行

解释:%23是#的 URL 编码形式,表示普通字符#,
在 URL 中,某些字符有特殊含义,需要使用URL 编码(即百分号编码)来表示,
类似于进制统一一样,为了避免不必要的麻烦,我们通常都把格式统一一下,

   以下字符在 URL 中可直接使用,无需编码:字母:`a-z`、`A-Z`数字:`0-9`部分符号:`-`、`_`、`.`、`~`
但是遇到特殊字符的时候,最好去查一查看下要不要转变成URL

得出flag
在这里插入图片描述

更新

于2025.06.04

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

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

相关文章

Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用--简单的工作进度管理

在前期工作(Tauri(2.5.1)Leptos(0.7.8)开发桌面应用--程序启动界面_tauri 程序启动画面-CSDN博客)的基础上继续进行自用桌面小程序的开发。为了方便管理工作进度,决定自己造轮子。效果如下: 工作进度管理系统 在编写程序过程中&am…

java面试 网络编程与 Java I/O:技术要点解析

java面试 网络编程与 Java I/O:技术要点解析 网络编程与 Java I/O:技术要点解析一、TCP 和 UDP 的区别TCP(Transfer Control Protocol)UDP(User Datagram Protocol)TCP 的三次握手与四次挥手 二、Java 的几…

PhpStorm设置中文

环境信息 系统版本:Windows11 22H2 PhpStorm版本:2025.1.1【Build #PS-251.25410.148】 设置中文 PhpStorm并不需要安装插件或下载相应的汉化包进行汉化 依次点击点击: file或右上角设置按钮→ 进入Settings→ 找到Appearance & Behav…

【监控】Spring Boot 应用监控

这段配置是 Spring Boot 应用中对 Actuator 和 Micrometer 监控系统的配置,用于将应用的指标暴露给 Prometheus 进行收集。下面我将详细介绍这种配置方式及其提供的指标。 配置说明 这个配置主要涉及 Spring Boot Actuator 和 Micrometer 两个核心组件&#xff1a…

学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1]

学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1] 学习机器学习,需要学习如何预处理原始数据,这里用到pandas,将原始数据转换为张量格式的数据。 1、安装pandas pip install pandas 2、写入和读取数据 >>创建一个人工…

一台电脑联网如何共享另一台电脑?网线方式

前言 公司内网一个人只能申请一个账号和一个主机设备;会检测MAC地址;如果有两台设备,另一台就没有网;因为是联想老电脑,共享热点用不了,但是有一根网线,现在解决网线方式共享网络; …

Spring Boot 基础知识全面解析:快速构建企业级应用的核心指南

一、Spring Boot 概述:重新定义 Java 开发 1.1 什么是 Spring Boot? Spring Boot 是基于 Spring 框架的快速开发框架,旨在简化 Spring 应用的初始搭建及开发过程。它通过 「约定优于配置」(Convention Over Configuration&#…

CentOS-stream-9 Zabbix的安装与配置

一、Web环境搭建部署Zabbix时,选择合适的MariaDB、PHP和Nginx版本非常重要,以确保兼容性和最佳性能。以下是建议版本:Zabbix 6.4 MariaDB:官方文档推荐使用MariaDB 10.3或更高版本。对于CentOS Stream 9,建议使用Maria…

CppCon 2014 学习:Adventures in Updating a Legacy Vintage Codebase

“VINTAGE” 部分是对现实中飞行模拟系统中遗留系统复杂性的描述。以下是对关键点的理解与拆解: 飞行模拟系统的背景 多环境、多语言、多硬件: 编程语言: 混用的“遗留语言”:Ada, C, C, Fortran, Jovial, PL/M, Pascal不同语言…

【计算机】计算机存储器的分类与特性

文章目录 一、按作用层次分类1. 主存储器(内存)2. 辅助存储器(外存)3. 高速缓冲存储器(Cache) 二、按存储介质分类1. 半导体存储器2. 磁存储技术3. 光存储发展 三、按存取方式分类1. 随机存储器技术细节2. …

Redisson - 实现延迟队列

Redisson 延迟队列 Redisson 是基于 Redis 的一款功能强大的 Java 客户端。它提供了诸如分布式锁、限流器、阻塞队列、延迟队列等高可用、高并发组件。 其中,RDelayedQueue 是对 Redis 数据结构的高阶封装,能让你将消息延迟一定时间后再进入消费队列。…

上门服务小程序订单系统框架设计

一、逻辑分析 上门服务小程序订单系统主要涉及服务展示、用户下单、订单处理、服务人员接单与服务完成反馈等核心流程。 服务展示:不同类型的上门服务(如家政、维修等)需要在小程序中展示详细信息,包括服务名称、价格、服务内容介…

Android apk装机编译类型: verify、speed-profile, speed与启动耗时

Android apk装机编译类型: verify、speed-profile, speed与启动耗时 Dex2oat (dalvik excutable file to optimized art file) ,对 dex 文件进行编译优化,Android 虚拟机可识别的是dex文件,应用运行过程如果每次都将dex文件加载内存&#xff…

winrm登录失败,指定的凭据被服务器拒绝

winrm登录失败,指定的凭据被服务器拒绝。 异常提示:the specified credentials were rejected by the server 在windows power shell执行 set-executionpolicy remotesigned winrm quickconfig winrm set winrm/config/service/auth {Basic"true…

Unity3D ET框架游戏脚本系统解析

前言 ET框架在Unity3D中实现的GamePlay脚本系统是一种革命性的、基于ECS(实体-组件-系统)架构的设计,它彻底改变了传统的基于MonoBehaviour的游戏逻辑编写方式。其核心思想是追求高性能、高解耦、易热更新,特别适合大型复杂的网络…

android与Qt类比

一、概念对应关系 Android RecyclerView 组件类比描述Qt 模型 - 视图组件Qt 类比描述RecyclerView画板(容器)QAbstractItemView视图(展示数据的容器,如列表、表格)RecyclerView.Adapter画布(数据桥梁&…

Jenkins 2.479.1安装和邮箱配置教程

1.安装 在JDK安装并设置环境变量完成后,下载官网对应的war版本,在对应目录下打开命令行窗口并输入 java -jar jenkins.war其余参数感兴趣可以自行查阅,这里启动的 jenkins 服务默认占用8080端口,在浏览器输入 localhost:8080进入…

多分辨率 LCD 的 GUI 架构设计与实现

1.1多分辨率显示系统的挑战与解决方案 1.1.1 分辨率适配的核心问题 在嵌入式系统中,同时支持不同分辨率的 LCD(如 240160、320480 等)面临以下挑战: 布局适配:同一界面元素在不同分辨率下需要调整大小和位置 字体显示:小分辨率屏幕需要更小的字体,而大分辨率需要更清…

11. MySQL事务管理(上)

1. CURD不加控制&#xff0c;会有什么问题&#xff1f; 火车票售票系统tickets表 id name nums 10 西安<->兰州 1 客户端A 客户端B if (nums > 0) { if (nums > 0) { 卖票 卖票 // update numsnums - 1 update numsnums - 1 } } 当客户端A检查还有一张票时&#xf…

Beta分布Dirichlet分布

目录 Beta分布Dirichlet分布Beta分布&Dirichlet分布从Dirichlet分布生成Beta样本Beta分布&Dirichlet分布应用 Beta分布 Beta分布是定义在区间 [ 0 , 1 ] [0, 1] [0,1]上的连续概率分布&#xff0c;通常用于模拟概率或比例的随机变量。Beta分布的概率密度函数&#xff…