[极客大挑战 2019]EasySQL 1

news/2024/10/30 9:31:30/

[极客大挑战 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


http://www.ppmy.cn/news/29895.html

相关文章

PCL 点云高斯混合聚类(GMM)

文章目录 一、简介二、算法实现三、实现效果参考资料一、简介 与k均值使用原型向量来刻画聚类结构不同,高斯混合聚类(Mixture-of-Gaussian)采用了概率模型来表达聚类原型。从名字中就可以知晓,该方法将会结合高斯分布来进行聚类过程,该分布的概率密度函数定义如下所示: p (…

AtCoder Beginner Contest 292——A-E题讲解

蒟蒻来讲题&#xff0c;还望大家喜。若哪有问题&#xff0c;大家尽可提&#xff01; Hello, 大家好哇&#xff01;本初中生蒟蒻讲解一下AtCoder Beginner Contest 292这场比赛的A-E题&#xff01; A题 原题 Problem Statement You are given a string SSS consisting of lo…

Java——N皇后问题

题目链接 leetcode在线oj题——N皇后 题目描述 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff…

Microsoft designer 使用教程

继各种ai绘图软件诞生之后 dell 2 playground.... 微软自己研发的重量级产品 Microsoft designer 上线了 Microsoft Designer 是微软公司推出的一款设计工具&#xff0c;主要用于快速创建Web和移动应用程序的原型设计。它提供了一系列的工具和模板&#xff0c;可以帮助用户…

三天Golang快速入门—面向对象

面向对象Golang接口的定义go中类空接口空接口作为函数的参数切片实现空接口map的值实现空接口类型断言值接收者和指针接收者值接收者指针接收者接口嵌套Golang接口的定义 接口interface是一种抽象的类型。接口定义了一个对象的行为规范&#xff0c;只定义规范不实现&#xff0…

梯度提升算法决策过程的逐步可视化

梯度提升算法是最常用的集成机器学习技术之一&#xff0c;该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础&#xff0c;所以在这篇文章中&#xff0c;我们将从头开始构建一个梯度增强模型并将其可视化。 梯度提升算法介绍 梯度提升算法&#x…

代码随想录中:回溯算法的基础

回溯算法是一种暴力的搜索方式&#xff1b;回溯法一般与递归同时存在。 回溯法&#xff0c;一般可以解决如下几种问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合切割问题&#xff1a;一个字符串按一定规则有几种切割方式子集问题&#xff1a;一个…

LeetCode 236.二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自己的祖…