【BUUCTF 加固题】Ezsql 速通

news/2024/5/19 23:44:44 标签: 开发语言, 前端, javascript, web安全, html, php, CTF
htmledit_views">
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言

一、访问web网址

二、ssh远程登录

三、加固网站源代码


前言

靶机地址解释: 第一行:目标机器 WEB 服务地址 第二行:目标机器 SSH 地址以及端口 第三行:Check 服务访问地址

修复方法:

  1. SSH 连接上目标机器,用户 ctf,密码 123456。
  2. 对目标机器上的服务进行加固。
  3. 访问 Check 服务的 /check进行 check。
  4. 若返回 True,则访问 /flag 可获得 /flag。
  5. 每次 check 后目标机器会重置。

一、访问web网址

Your flag: flag{c2a05bc6-e9fa-42df-a85f-caef91274706}

发现一个登录页面,像一般出现登录框的,我们可以尝试sql注入和万能密码以及弱口令进行登录尝试。

我们这里利用sql注入万能密码,成功登录进来了,这里的加固题目,就是让我们加固sql,防止sql注入登录进来。

'OR'1'='1

二、ssh远程登录

成功利用kali进行远程ssh登录

php">┌──(root💀kali)-[~/桌面]
└─# ssh ctf@761c01af-d64d-4dc4-9be2-e7c7859386fb.node5.buuoj.cn -p 27133
The authenticity of host '[761c01af-d64d-4dc4-9be2-e7c7859386fb.node5.buuoj.cn]:27133 ([117.21.200.176]:27133)' can't be established.
ECDSA key fingerprint is SHA256:IcIkotEo1ncKwQgZHgbL2vJ7nio6zTWCWWxQhRYCXiU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[761c01af-d64d-4dc4-9be2-e7c7859386fb.node5.buuoj.cn]:27133,[117.21.200.176]:27133' (ECDSA) to the list of known hosts.
ctf@761c01af-d64d-4dc4-9be2-e7c7859386fb.node5.buuoj.cn's password: 
Linux web2 4.19.221-0419221-generic #202112141049 SMP Tue Dec 14 11:54:51 UTC 2021 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
$ id
uid=1000(ctf) gid=1000(ctf) groups=1000(ctf)
$ 

/var/www/html目录下,查看index.php,查看网站源代码

三、加固网站源代码

网站的源代码,有危害主要是在下面的php代码中

//SQL 注入攻击:代码中直接使用用户输入的用户名和密码拼接成 SQL 查询语句,这会导致 SQL 注入漏洞。攻击者可以通过在输入中插入恶意的 SQL 代码来绕过认证,甚至获取敏感数据。例如,攻击者可以输入 ' OR 1=1; -- 作为密码,这会使查询条件始终为真,从而实现万能密码登录。

php"><?php
error_reporting(0);
include 'dbConnect.php';
$username = $_GET['username'];
$password = $_GET['password'];
if (isset($_GET['username']) && isset($_GET['password'])) {
    $sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
    $result = $mysqli->query($sql);
    if (!$result)
        die(mysqli_error($mysqli));
    $data = $result->fetch_all(); // 从结果集中获取所有数据
    if (!empty($data)) {
        echo '登录成功!';
    } else {
        echo "用户名或密码错误";
    }
}
?>




php代码修改成如下代码:

在修改后的代码中,使用了参数化查询来获取用户的输入。首先,使用 prepare() 方法准备了一个带有占位符的 SQL 查询语句。然后,使用 bind_param() 方法将用户输入的变量绑定到查询语句的占位符上,确保了变量值不会被解释为 SQL 代码。最后,使用execute()方法执行查询。

php"><?php
error_reporting(0);
include 'dbConnect.php';

$username = $_GET['username'];
$password = $_GET['password'];

if (isset($username) && isset($password)) {
    // 使用参数化查询来防止 SQL 注入
    $sql = "SELECT * FROM users WHERE username = ? AND password = ?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("ss", $username, $password);
    $stmt->execute();

    $result = $stmt->get_result();

    if (!$result) {
        die($mysqli->error);
    }

    $data = $result->fetch_all(); // 从结果集中获取所有数据

    if (!empty($data)) {
        echo '登录成功!';
    } else {
        echo "用户名或密码错误";
    }

    $stmt->close();
}
?>


再尝试利用 'OR'1'='1 进行登录,发现登录不成功了

然后先访问这个目录,进行靶场重置

然后再进行访问/flag ,就可以看到flag值了


http://www.niftyadmin.cn/n/5378586.html

相关文章

相机图像质量研究(22)常见问题总结:CMOS期间对成像的影响--光学串扰

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

基于3种机器学习法的黄土高原农业干旱监测比较研究_王晓燕_2022

基于3种机器学习法的黄土高原农业干旱监测比较研究_王晓燕_2022 摘要关键词1 引言2 研究区与数据6 结论#pic_center =x260) 摘要 本文集成 MODIS、TRMM、GLDAS 和再分析等多源数据,选取了 13 个与干旱有关的变量,并与基于气象数据的 3 个月时间尺度的标准化降水蒸发指数(SP…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators&#xff1a;作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches&#xff1a;将视觉数据转换为补丁3、Video compression network&#xff1a;视频压缩网络4、Spacetime Latent Patches&#xff1a;时空潜在…

创新设计与技术突破:嵌入式系统在人工智能和机器学习领域的应用前景

嵌入式系统在人工智能和机器学习领域的应用前景非常广阔&#xff0c;创新设计和技术突破将进一步推动这些领域的发展。以下是嵌入式系统在人工智能和机器学习领域的应用前景&#xff1a; 1.实时数据处理 嵌入式系统具有小型化、低功耗和高效率等特点&#xff0c;非常适合用于实…

Flutter 动画(显式动画、隐式动画、Hero动画、页面转场动画、交错动画)

前言 当前案例 Flutter SDK版本&#xff1a;3.13.2 显式动画 Tween({this.begin,this.end}) 两个构造参数&#xff0c;分别是 开始值 和 结束值&#xff0c;根据这两个值&#xff0c;提供了控制动画的方法&#xff0c;以下是常用的&#xff1b; controller.forward() : 向前…

Mock.js

在开发后端的应用中&#xff0c;我们使用postman来测试接口&#xff0c;观察和验证前后端之间的数据传递是否正常。 在开发前端的应用中&#xff0c;我们使用Mock.js来模拟后端服务&#xff0c;以便进行前端业务逻辑的开发和测试。 一般情况下&#xff0c;个人开发或者小团队开…

2024 年合并 PDF 文件的免费 PDF 合并软件榜单

合并 PDF 是当今人们寻找的最重要的功能之一。在本文中&#xff0c;您将了解前五名的 PDF 合并软件以及详细的介绍&#xff0c;以便您选择最佳的。如果您想将所有重要信息都放在一个文件中&#xff0c;而不是在不同的文件中查找&#xff0c;那么合并 PDF 文件是必要的。通过这种…

【Java多线程】Thread类的基本用法

目录 Thread类 1、创建线程 1.1、继承 Thread&#xff0c;重写run 1.2、实现 Runnable&#xff0c;重写run 1.3、使用匿名内部类&#xff0c;继承 Thread&#xff0c;重写run 1.4、使用匿名内部类&#xff0c;实现 Runnable&#xff0c;重写run 1.5、使用 lambda 表达式…