WeSeong 登录
← 返回文章列表
网络与安全

3层架构,Maria (数据库),Hping3,John,注入

3层架构,Maria (数据库),Hping3,John,注入

一、概述

在实践过程中,我们将继续安装数据库服务器,并将其与Web服务器连接。我们将使用Hping3工具进行一些与DDoS攻击相关的实践。此外,我们将使用John the Ripper工具,学习如何破解账户密码。同时,我们将简单地了解SQL注入攻击。



Ⅱ. 数据库

数据库服务器是 MariaDB我们计划使用该工具。 在安装数据库服务器之前,请确保您已成功连接。 将 Connector 下载到 Tomcat (WAS) 服务器,并修改环境变量。 该配置中,同时注册了 JAVA 和 Tomcat。 这样做是为了让 Tomcat 和 JAVA 能够使用诸如 Connector 这样的库。


※ 环境因素在 Linux (Ubuntu) 系统中 /etc/profile并将其注册。 一套 可以通过命令来查询环境变量的设置信息。



您可以这样修改 `/etc/profile` 文件: `export` 关键字用于设置环境变量,并在此处添加与 Java 和 Tomcat 运行相关的路径,包括 `bin` 目录。最后,指定 `CLASSPATH` 变量,指向 Tomcat 的 `lib` 目录,因为 Connector 文件会下载到该目录。 这样就完成了。 MariaDB 连接器提供下载链接。

MySQL :: 下载 MySQL Connector/J (已存档版本)

MariaDB Connector 为什么被称为 MySQL 页面,是因为它们实际上是同一个数据库。建议您查阅相关资料以了解更多信息。


来源:/etc/profile 输入指令后,系统会立即应用修改后的设置文件。



请复制此处提供的链接,然后使用“wget”命令,将其下载到任何您指定的目录。 “使用 sudo apt 安装 binutils” 在安装完软件包之后 'ar -x mysql-connector-j_8.0.33-1ubuntu20.04_all.deb' 解压缩文件,并执行“tar xvzf data.tar.xz”命令,这样就会出现如图所示的“usr”文件夹。


将位于 `/usr/local/apache-tomcat-9.0.82/lib/usr/share/java/mysql-connector-j-8.0.33.jar` 路径上的 `mysql-connector-j-8.0.33.jar` 文件移动到 `/usr/local/apache-tomcat-9.0.82/lib` 路径,并删除 `debian`, `control`, `data`, `deb`, `usr` 文件和目录。 留下以下文件和目录即可:


通过指定命令,应用环境设置并重启 Tomcat 服务器。然后,通过访问其他虚拟机程序,安装数据库服务器。 'sudo apt install mariadb-server'可以安装并配置。 还可以将其添加到虚拟机的启动程序中,以便在启动时自动运行。


安装完成后,作为管理员,可以通过 root 账户登录 MariaDB 命令行界面,从而执行各种数据库操作。

create database test; #스키마 생성
create user 'test'@'%' identified by '1234'; #새로운 계정 생성
grant all privileges on *.* to test@'%'; #스키마에 대한 계정 권한 부여
flush privileges; #권한 변경 즉시 적용

虽然我已经添加了注释,但数据库的学习仍然是必要的。我强烈建议您单独学习相关的命令和操作方式。由于内容非常丰富,这里只提供简短的注释说明,并直接结束。

create table member(
    id int,
    name varchar(15),
    password varchar(20)
);

insert into member(id, name, password)
values
(1, '일', 'abcd'),
(2, '이', 'bcde'),
(3, '삼', 'cdef'),
(4, '사', 'defg'),
(5, '오', 'efgh');

此外,我们假设存在以下简单的数据。


现在,为了确认数据是否能够正常传输,我们需要在 Tomcat (WAS) 服务器上进行检查。 /usr/local/apache-tomcat-9.0.82/webapps 您可以自由地更改现有 ROOT 目录的名称,例如更改为 ROOT.ori,然后使用 mkdir 命令创建新的 ROOT 目录。 接下来,进入 ROOT 目录,编写 index.jsp 文件。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*" %>
<!DOCTYPE html>
<%
String DB_URL = "jdbc:mysql://10.10.10.10:3306/test";
String DB_USER = "test";
String DB_PASSWORD = "1234";
String sql = "";
Connection conn = null;
PreparedStatement ptmt = null;
ResultSet rs = null;

try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
        sql = "select * from member where id = 1";
        ptmt = conn.prepareStatement(sql);
        rs = ptmt.executeQuery();
        if (rs.next()){
                out.println("Success "+rs.getString("name")+" "+rs.getString("password"));
        }else {
                out.println("실패");
        }
}catch(Exception e){
        out.println(e);
}finally{
        conn.close();
        ptmt.close();
        rs.close();
}
%>
附件文件测试.sql下载文件

由于确认连接是否成功非常重要,因此我提供了这样的说明。最后,数据库服务器只允许本地访问,可以通过以下路径访问:/etc/mysql/mariadb.conf.d/50-server.cnf 绑定地址 将部分设置为所有 IP 地址 0.0.0.0。


此外,使用 `sudo systemctl restart mysqld` 命令可以重启数据库服务器。


我们可以看到这样的变化。现在,在所有服务器都运行状态下,通过进入WEB服务器地址,



不仅能够与WAS服务器建立良好的连接,还能获取数据库服务器的数据!



Ⅲ. Hping3

目的是发送大量数据包,导致服务器崩溃。 DDoS 攻击为了简单地体验一下,首先… 'sudo apt install hping3'我们会安装给您。安装完成后 'sudo hping3 --icmp 10.10.10.7 (指向搭建了三层架构的 Web 服务器的 IP 地址) --rand-source --flood'尝试执行该命令。


因此,当发送数据包时,由于这个数据包不会记录在特殊的访问日志中, tcpdump 需要使用命令将数据包信息保存为文件,以便下载。可以通过在网页服务器上运行“tcpdump -w test.pcap”命令,将数据包日志保存为文件。


只要输入这些指令,程序就会一直运行,因此需要手动停止程序。 WinSCP 请将 test.pcap 文件通过程序发送到您的操作系统。 Wireshark 如果以程序的方式查看,


您会看到如此大量的“ping”攻击记录。 我们可以将其理解为一种无效的DDoS实验。


tcpdump 指定端口号:`tcpdump` 命令也提供一个选项,可以只保存通过特定端口进入的包。



Ⅳ. 约翰

以英国连环杀手“杰克·理巴迪”的名字命名 John the Ripper有一个名为“Crack Tool”的工具。 它的目的是破解 UNIX 操作系统中的密码,据说它可以轻松地破解简单的密码。 多种密码算法这个文件存在,它是一个专门用于处理裂缝的密码列表。

john --wordlist=경로 및 파일명

可以通过这个命令来使用。这个命令已经在网上流传。 易受攻击的密码列表文件您可以下载该文件,并参考此文件来运行“John”程序。为了真正体验,请… “使用 sudo apt 安装 john”安装该程序。 为了测试其功能。 'sudo adduser test1 (用户名)' 使用命令创建新的 Linux 账户(密码设置为“piglet”)。 检查 /etc/passwd 文件,以确认新账户是否已成功创建。


在任何一个目录下创建一个名为“john”的目录。由于现有的“passwd”文件使用了哈希密码,因此需要修改“/etc/shadow”文件,去除哈希密码,然后将“passwd”文件中的“x”部分替换为哈希密码,最后创建一个新的文件并保存。 “使用 sudo 命令,取消 /etc/passwd 和 /etc/shadow 文件的加密” > ./passwd执行命令,将转换后的 Linux 账户密码文件保存下来。然后,打开保存的 passwd 文件,可以查看…


您可以观察到这种修改后的状态。现在,要开始使用“裂开”(通过随机尝试来找到账户密码),以便找到密码,请…… “约翰的密码文件”只需执行相应的命令即可。由于实际搜索可能需要较长时间,因此我们只针对我们创建的 test1 账户来尝试破解密码。 'john --user=test1 ./passwd' 输入指令后,系统会显示“正在执行(自动执行)”的状态,并告知您找到的结果。



/etc/sudoers 这个文件存在,如果修改这个文件,就可以将普通账户提升为管理员权限。 原始文件修改可能会存在风险,但您可以选择忽略警告信息。


在修改并保存后,再次登录,就可以使用管理员权限。此外, /etc/ssh/sshd_config 我有一个文件,这个文件是在使用 SSH 协议时,针对 root 账户。 在SSH服务器上设置是否允许或禁止登录它可以直接授予或禁止 root 权限的登录。打开文件后,会显示如下内容:


只需修改注释掉的 `PermitRootLogin` 属性。


注射 这是一种技术,即利用代码的漏洞,通过恶意代码进行攻击。 简单来说,这就是 SQL 注入。 假设一个网站在登录时,从数据库中查询用户表,

select * from member where id = '' and pw = ''

假设我们已经确认了这一点。这时,请务必记住密码。

aaa' or 'x' = 'x

如果输入“로”,则 SQL 查询为:

select * from member where id = 'abc' and pw = 'aaa' or 'x' = 'x'

从而使其能够正常运行。 或者只要其中一个条件成立,就会导致登录失败。这是一种基本的 SQL 注入攻击,它可能导致各种攻击,例如在修改账户时更改权限或插入 JavaScript 代码,从而导致无法登录。



评论

我感觉这次课程相关的关键部分已经基本整理完毕。虽然周五的 Docker 部分还未完成,但我认为这部分还需要进一步学习,并且计划在后续的云课程中进行,所以我会尽快发布相关内容。之后,我会一次性发布所有内容,或者在学习到一定程度后,再单独发布。🖐️