当前位置: 首页 > news >正文

[极客大挑战 2019]EasySQL 1

[极客大挑战 2019]EasySQL 1

  • 解题POC
  • 一、解题思路之暴力破解
    • 1. 弱口令
    • 2. 暴力破解
  • 二、解题思路之万能密码
    • 1. 什么是万能密码
    • 2. 测试过程


解题POC

在这里插入图片描述

直接点击登录获取flagflag{62f0d2ca-579e-450e-941f-5f7c23a8baf7}


一、解题思路之暴力破解

这题是万能密码,所以暴力破解只是浅浅的讲一下:

1. 弱口令

看到登录框,第一步肯定是想到了弱口令,常见的弱口令如下所示:

网站后台:
admin、manager、admin123、admin888、admin666不同的后台类型拥有不同的弱密码:数据库(phpmyadmin)
账号:root
密码:root、root123、123456tomcat
账号:admin、tomcat、manager
密码:admin、tomcat、admin123、123456、managerjboss
账号:admin、jboss、manager
密码:admin、jboss、manager、123456weblogic
账号:weblogic、admin、manager
密码:weblogic、admin、manager、123456

当然弱口令也是可以自动生成的,弱口令生成一般都是根据某人的习惯生成,弱口令密码生成器

在这里插入图片描述

这个生成器需要了解某些人的习惯,这和社工有关了当然这题不是弱口令,只是第一步思路是弱口令

2. 暴力破解

暴力破解一般需要没有验证码,token值验证等,进行暴力破解一般使用burpsuit:(后台网站一般有超级管理员admin,所以只需要爆破密码):

  1. 设置代理:
    在这里插入图片描述
  2. 抓取数据包

在这里插入图片描述
3. 暴力破解:
在这里插入图片描述

找到length长度不一样的,response正确和错误页面不同,字节数也不同,当然这题也不是暴力破解

二、解题思路之万能密码

1. 什么是万能密码

要理解万能密码,先看如下代码所示:

<?php
$con = mysqli_connect("localhost","root","901026","loophole");  //数据库连接
if(mysqli_connect_error())
{echo "连接错误" . mysqli_connect_error();
}
$sql="SELECT * FROM sql_test WHERE username='".$_GET["username"]."' AND password='".$_GET["password"]."'";
echo $sql."<br/>";  //拼接的sql语句
//执行sql语句
$result = mysqli_query($con,$sql);  // 语句执行结果$rowcount=mysqli_fetch_row($result);if($rowcount!=0){  //只判断语句是否执行成功echo "OK";
}else{echo "ERROR";
}?>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>SQL injection test</title>
</head>
<body>
<form class="" action="" method="GET"><label for="username">用户名:</label><input type="test" name="username" value="" id="username"><br/><label for="password">密码:</label><input type="password" name="password" value="" id="password"><br/><button>提交</button>
</form>
</body>
</html>

如上所示,主要看如下代码:

$sql="SELECT * FROM sql_test WHERE username='".$_GET["username"]."' AND password='".$_GET["password"]."'";
echo $sql."<br/>";  //拼接的sql语句
//执行sql语句
$result = mysqli_query($con,$sql);  // 语句执行结果$rowcount=mysqli_fetch_row($result);if($rowcount!=0){  //只判断语句是否执行成功echo "OK";
}else{echo "ERROR";
}

如上代码的意思是,只要sql语句执行正确,就可以进行登录,$sql="SELECT * FROM sql_test WHERE username='".$_GET["username"]."' AND password='".$_GET["password"]."'";对于这条语句,如果.$_GET[“password”]=1‘ or ‘1’='1,那么有or使语句一点执行成功

2. 测试过程

  1. 输入单引号,双引号,看password的左右是什么符号,好进行闭合处理,其中单引号报错,说明password的左右是单引号,单引号不能包裹单引号
    在这里插入图片描述
  2. 进行闭合

1’ or ‘a’='a,sql语句变为$sql="SELECT * FROM sql_test WHERE username='".$_GET["username"]."' AND password='1' or 'a'='a',一定执行正确,登录后台获取flag

相关文章:

[极客大挑战 2019]EasySQL 1

[极客大挑战 2019]EasySQL 1解题POC一、解题思路之暴力破解1. 弱口令2. 暴力破解二、解题思路之万能密码1. 什么是万能密码2. 测试过程解题POC 直接点击登录获取flagflag{62f0d2ca-579e-450e-941f-5f7c23a8baf7} 一、解题思路之暴力破解 这题是万能密码&#xff0c;所以暴力破解…...

vulnhub raven2复现

1.扫描全网段&#xff0c;找出了存活主机ip为192.168.85.144 nmap 192.168.85.0/24 2.nmap扫描端口 nmap -p1-65535 192.168.85.144 3.访问此网站&#xff0c;没找到什么地方可以利用漏洞 &#xff0c;查看中间件为wordpress 4.使用dirb对该网站进行目录扫描 dirb http://1…...

LeetCode 剑指 Offer II 079. 所有子集

给定一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],[3…...

打印名片-课后程序(Python程序开发案例教程-黑马程序员编著-第二章-课后作业)

实例3&#xff1a;文本进度条 进度条以动态方式实时显示计算机处理任务时的进度&#xff0c;它一般由已完成任务量与剩余未完成任务量的大小组成。本实例要求编写程序&#xff0c;实现图1所示的进度条动态显示的效果。 下载中下载完成图1文本进度条 实例分析 在本实例中可以将…...

为什么我们在判断字符串不为null后还要判断字符串长度大于0?

我们在做字符串判断时一般会&#xff1a; if (s ! null && s.length() > 0) {} 但是我就在想&#xff0c;字符串不为空了&#xff0c;那么他一定有值&#xff0c;字符串长度不就大于0吗&#xff0c;所以s.length()>0是不是有点多余&#xff1f; 我的思维误区是…...

javaEE 初阶 — 应用层中的 DNS 协议(域名解析系统)

文章目录什么是域名1. 如何建立 域名 与 IP 的对应关系2. 域名的分级什么是域名 域名也就是平常所说的网址&#xff0c;比如 www.baidu.com。 其实网络上的服务器要访问这个网址&#xff0c;需要的是 IP 地址。、 但是 IP 地址比较拗口不方便记忆&#xff0c;于是就有使用一些…...

【网络】-- 网络编程套接字(铺垫、预备)

目录 理解源IP地址和目的IP地址 认识端口号 端口号 理解源端口号和目的端口号 套接字 认识TCP与UDP协议 网络字节序 socket编程接口 socket 常见API sockaddr结构 理解源IP地址和目的IP地址 就如同我们唐僧的取经路&#xff1a; 唐僧的出发地到目的地&#xff1a;东…...

一文打通@SentinelResource

Sentinel 提供了 SentinelResource 注解用于定义资源&#xff0c;并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等 如果使用的是Sentinel Annotation AspectJ Extension&#xff0c;需要导这个依赖 <dependency><groupId>com.alibaba.csp</…...

苹果手机备份的文件在电脑什么地方 苹果备份文件怎么查看

在这个网络信息时代&#xff0c;为手机进行定期备份已经成为了家常便饭。在使用备份软件对苹果手机进行备份后&#xff0c;苹果手机备份的文件在什么地方&#xff0c;苹果备份文件怎么查看呢&#xff1f;本文就带大家来了解一下。 一、苹果手机备份的文件在电脑什么地方 大家…...

【MySQL速通篇001】5000字超详细介绍MySQL部分重要知识点

&#x1f340; 写在前面 这篇5000多字博客也花了我几天的时间&#x1f602;&#xff0c;主要是我对MySQL一部分重要知识点的理解【后面当然还会写博客补充噻&#xff0c;欢迎关注我哟】&#xff0c;当然这篇文章可能也会有不恰当的地方【毕竟也写了这么多字&#xff0c;错别字可…...

并发编程——synchronized优化原理

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;耶瞳空间 一&#xff1a;基本概念 使用synchronized实现线程同步&#xff0c;即加锁&#xff0c;实现的是悲观锁。加锁可以使一段代码在同一时间只有一个线程可以访问&#xff0c;在增加安全性的同…...

LeetCode 剑指 Offer II 083. 没有重复元素集合的全排列

给定一个不含重复数字的整数数组 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 1 < nums.length < 6 -10 < nu…...

JSONObject与JSONArray使用区别

目录 1.使用的场景区别 2. 使用方法区别 3.获取方式不同 4. 解析JSON字符串 5.总结 1.使用的场景区别 想通过键值对的形式获取数据&#xff0c;使用JSONObject。如果后台查询的是某个bean的list集合向前端页面传递&#xff0c;使用JSONArray。 2. 使用方法区别 创建方法不…...

经典C程序例程:通过进程ID得到文件名

通过进程ID得到文件名 #include <stdio.h> #include <windows.h> #include <tlhelp32.h> #include <tchar.h>BOOL EnablePrivilege(HANDLE hToken,LPCSTR szPrivName); void DispProcess(void); void DispPrsFile(void);// typedef BOOL (_stdcall *E…...

【Java】Spring MVC程序开发

文章目录Spring MVC程序开发1. 什么是Spring MVC&#xff1f;1.1 MVC定义1.2 MVC 和 Spring MVC 的关系2. 为什么学习Spring MVC&#xff1f;3. 怎么学习Spring MVC&#xff1f;3.1 Spring MVC的创建和连接3.1.1 创建Spring MVC项目3.1.2 RequestMapping 注解介绍3.1.3 Request…...

leetcode题解-704. 二分查找

给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释: 9 出现…...

2.2 C语言程序的错误条件

在C语言程序中,条件语句决定程序的执行路径,因此条件表达式是程序的关键。 应用最经典的程序,除法的减法实现程序,解释条件表达式的重要性。x=y*q+r,x是被除数,y是除数,q是商,r是余数。 程序的方法, x=(r-y)+y*(1+q)。 main(){ /*错误条件的程序*/ r:=x; q:=0; whil…...

laravel 邮件发送

配置 Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。 邮件中的每一项都在配置文件中有单独的配置项&#xff0c;甚至是独有的「传输方式」&#xff0c;允许你的应用使用不同的邮件服务发送邮件 mailers > [smtp > [transport > smtp,host > env(M…...

高性能 Jsonpath 框架,Snack3 3.2.57 发布

Snack3&#xff0c;一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明&#xff0c;及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示&#xff0c;ONode也即 One node 之意&#xff0c;代表任何类型&#xff0c;也可以转换为任何类型。 强调文档…...

Android---进程间通信机制3

1 服务如何注册到 SM 中 getIServiceManager().addService(name, service, false); getIServiceManger --- new ServiceManagerProxy(new BinderProxy()) BinderInternal.getContextObject --- 返回 BinderProxy 对象 ProcessState::self()->getContextObject: 创建一个 BpB…...

Python实战,爬取金融期货数据

大家好&#xff0c;我是毕加锁。 今天给大家带来的是 Python实战&#xff0c;爬取金融期货数据 文末送书&#xff01; 文末送书&#xff01; 文末送书&#xff01; 任务简介 首先&#xff0c;客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注&#xff1a;获取的是…...

Allegro如何导入第三方网表操作指导

Allegro如何导入第三方网表操作指导 在用Allegro做PCB设计的时候,除了支持第一方网表的导入,同样也是可以导入第三方网表的,第三方网表如下图 如何导入,具体操作如下 点击Setup点击User Preference...

高码率QPSK调制解调方案(FPGA实现篇)

在前面的章节中,已经讲过QPSK调制的方案和Matlab算法仿真,在本篇中,主要讲解基于FPGA的高速QPSK调制的实现。根据前面提到的技术指标,本系统传输的数据速率为500Mbps,中频为720MHz,因此,传统的串行QPSK调制已经不合适在FPGA中实现,需采用全数字的并行方式进行调制,具体…...

Elasticsearch的RESTful Api使用

Elasticsearch的RESTful Api使用 文章目录Elasticsearch的RESTful Api使用查询集群健康情况查看所有索引其他的_cat命令创建索引删除索引修改索引查看索引创建文档批量操作文档删除文档查询文档全量更新文档局部更新文档索引的搜索分词分析分数说明查询类型分析查询集群健康情况…...

软著申请需要注意的

一、文档格式 &#xff08;1&#xff09;程序源代码和说明文档&#xff0c;源码前后30页&#xff0c;文档前后30页。 &#xff08;2&#xff09;软件源代码和说明书的页眉必须标明软件名称、版本号和页码&#xff0c;应当与申请表中相应内容完全一致 &#xff08;3&#xff09…...

SpringBoot入门 - 添加Logback日志

SpringBoot开发中如何选用日志框架呢&#xff1f; 出于性能等原因&#xff0c;Logback 目前是springboot应用日志的标配&#xff1b; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。日志框架的基础在学习这块时需要一些日志框架的发展和基础&#xff0c;同时了…...

社会实践报告

中文摘要: 注重素质教育的今天&#xff0c;社会实践活动一直被视为高校培养德、智、体、美、劳全面发展的跨 世纪优秀人才的重要途径。团期社会实践活动是学校教育向课堂外的一种延伸&#xff0c;也是推进素质教育进程的重 手段。它有助于当代大学生接触社会&#xff0c;了解社…...

LeetCode 460. LFU 缓存 -- 哈希查询+双向链表

LFU 缓存 困难 634 相关企业 请你为 最不经常使用&#xff08;LFU&#xff09;缓存算法设计并实现数据结构。 实现 LFUCache 类&#xff1a; LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 int get(int key) - 如果键 key 存在于缓存中&#xff0c;则获取键…...

Dubbo 源码分析 – SPI 机制

1.简介 SPI 全称为 Service Provider Interface&#xff0c;是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中&#xff0c;并由服务加载器读取配置文件&#xff0c;加载实现类。这样可以在运行时&#xff0c;动态为接口 加载实现类。正因此特性&#xff0…...

JDBC概述二(JDBC编程+案例展示)

一&#xff08;JDBC的编程步骤&#xff09; 1.加载数据库驱动 加载数据库驱动通常使用class类的静态方法forName&#xff08;&#xff09;来实现&#xff0c;具体实现方式如下&#xff1a; Class.forName&#xff08;“DriverName”&#xff09;&#xff0c;DriverName就是数…...