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

20232411 2025-2026-1 《网络与系统攻防技术》实验八实验报告

1.实验内容

  1. Web前端 - HTML基础
  2. Web前端 - JavaScript与DOM
  3. Web后端 - MySQL基础
  4. Web后端 - PHP与数据库连接
  5. 基本安全攻击实践
  6. 综合安全平台实战

2.实验过程

1.建立Web前端html。

(1)启动Apache。使用命令systemctl start apache2打开Apache服务,并使用命令ufw allow 'Apache'允许Apache流量进出防火墙。在浏览器中输入localhost进入Apache默认网页确定服务。

image
image
image

(2)编写简单的登录html网页。进入/var/www/html目录创建html文件,分别是login-get.html,login-post.html,submit-get.html,submit-post.html。用以对比get方法和post方法登录的区别。表单代码及结果如下。

    <form action="submit-get.html" method="get"><div><label for="username">用户名:</label><input type="text" id="username" name="username" required></div><br><div><label for="password">密码:</label><input type="password" id="password" name="password" required></div><br><div><input type="submit" value="登录"><input type="reset" value="重置"></div></form>
 <form action="submit-post.html" method="post"><div><label for="username">用户名:</label><input type="text" id="username" name="username" required></div><br><div><label for="password">密码:</label><input type="password" id="password" name="password" required></div><br><div><input type="submit" value="登录"><input type="reset" value="重置"></div></form>

image
image
image
image

2.插入Web前端javascipt。

(1)加入javascipt重新编写html,命名为login.html。javascipt验证规则代码及结果如下。

            // 获取输入值const username = document.getElementById('username').value.trim();const password = document.getElementById('password').value;const messageDiv = document.getElementById('message');// 验证用户名非空if (!username) {messageDiv.innerHTML = "错误:用户名不能为空";messageDiv.style.color = "red";return;}// 验证密码非空if (!password) {messageDiv.innerHTML = "错误:密码不能为空";messageDiv.style.color = "red";return;}// 验证密码长度至少6位if (password.length < 6) {messageDiv.innerHTML = "错误:密码至少需要6位";messageDiv.style.color = "red";return;}// 验证密码包含大小写字母和数字const hasUpperCase = /[A-Z]/.test(password);const hasLowerCase = /[a-z]/.test(password);const hasNumber = /[0-9]/.test(password);if (!hasUpperCase || !hasLowerCase || !hasNumber) {messageDiv.innerHTML = "错误:密码必须包含大小写字母和数字";messageDiv.style.color = "red";return;}// 所有验证通过,显示欢迎消息messageDiv.innerHTML = `欢迎 ${username}`;messageDiv.style.color = "green";

image
image
image

(2)尝试注入攻击。在用户名中输入<div style="color:red;font-size:24px;">页面已被黑客篡改!</div>,浏览器会将整个字符串作为HTML解析,创建并渲染
元素及其样式。结果如下。

image

3.建立Web后端:MySQL数据库。

(1)使用命令systemctl start mysql启动MySQL,输入mysql进入数据库。

image

(2)进行建库、创建用户、修改密码、建表等操作,具体代码如下。

-- 1. 创建数据库
CREATE DATABASE test8;-- 2. 创建用户
-- 创建用户并设置密码
CREATE USER '20232411' IDENTIFIED BY '111';-- 3. 授予用户所有权限
GRANT ALL PRIVILEGES ON test8.* TO '20232411';
FLUSH PRIVILEGES;-- 4. 修改用户密码
ALTER USER '20232411' IDENTIFIED BY '20232411';-- 5. 使用test8数据库
USE test8;-- 6. 创建表
CREATE TABLE users (username VARCHAR(50) NOT NULL,password VARCHAR(100) NOT NULL,PRIMARY KEY (username)
);-- 7. 插入数据
INSERT INTO users (username, password) VALUES
('20232411', 'Dd1111'),
('test', 'Dd2222'),
('aaa', 'Aa123456');-- 8. 查看数据
SELECT * FROM users;

(3)具体操作结果如下。

image

4.建立Web后端:PHP网页认证。编写PHP网页,命名为。代码及结果如下。

<?php
// 连接数据库
$host = 'localhost';
$dbname = 'test8';
$username = '20232411';
$password = '20232411';try {$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {die("数据库连接失败: " . $e->getMessage());
}// 获取表单数据
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';// 验证输入
if (empty($username) || empty($password)) {echo "错误:用户名和密码不能为空";exit;
}// 查询用户
$sql = "SELECT password FROM users WHERE username = '$username'";
$result = $pdo->query($sql);
$user = $result->fetch(PDO::FETCH_ASSOC);// 验证用户
if ($user && $password === $user['password']) {echo "欢迎 $username";
} else {echo "错误:用户名或密码不正确";
}
?>

image
image

5.进行最简单的SQL注入,XSS攻击测试。

(1)简单的SQL注入。在已知第一个用户密码的情况下,在用户名输入admin' OR '1'='1,密码输入第一个用户密码。注入结果如下。

image

(2)简单的XSS攻击测试。使用admin' OR '1'='1' -- <img src=x onerror="alert('XSS成功!')">,密码输入第一个用户密码,在sql注入成功后浏览器会处理<img src=x onerror="alert('XSS成功!')">,使攻击成功。攻击结果如下。

image

6.安装DVWA平台,选择low级别,完成SQL注入、XSS、CSRF攻击。

(1)SQL注入题目。

image
首先在表单中输入1,如上图正常结果显示。
image
尝试输入万能密码1’or 1=1#,得到所有用户的姓名。
image
image
image
使用order by进行判断字段数。输入1' order by 3#时报错了,说明字段只有2列。
image
通过联合查询,输入1' union select database(),user()#获取库名和当前连接库的用户名。
image
输入1' union select table_name,table_schema from information_schema.tables where table_schema= 'dvwa'#查看表信息:dvwa 数据库只有一个数据表,users。
image
猜测users表的字段为user和password,输入:1' union select user,password from users #进行查询:查看到用户名、密码,密码判断采用md5进行加密。
image
通过https://www.cmd5.com/对admin用户密码进行解密得到明文password。

(2)XSS攻击题目。

  1. XSS(DOM)(DOM型跨站脚本攻击)。
    image
    选择English然后点击Select,查看URL变化。
    image
    直接在URL处更改为default=<script>alert(/xss/)</script>,访问攻击成功。
  2. XSS (Reflected)(反射型跨站脚本攻击)。
    image
    输入1,查看结果。
    image
    image
    输入<script>alert('hack')</script>查看返回结果,可以看到攻击成功。
  3. XSS (Stored)(存储型跨站脚本攻击)。
    image
    image
    在message输入框里输入<script>alert(1)</script>
    image
    ![image](https://img2024.cnblogs.com/blog/3262800/202512/3262800-20251206135548629-214842885.png
    F12打开之后在elements里面找到name元素,修改name输入框maxlength从10到100。
    image
    image
    在name输入框里输入<script>alert(1)</script>
    image
    查看数据库发现,攻击信息已存入数据库中。

(3)CSRF攻击攻击题目。

image
尝试两次密码不一致,分别是pass和password。页面顶部URL如上图。
image
新打开页面输入URLhttp://localhost/dvwa-master/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change#,可以看到密码成功修改了,攻击成功。

3.问题及解决方案

  • 问题1:在/var/www/html目录下无法创建文件。
  • 问题1解决方案:使用root权限打开文件管理系统即可。
  • 问题2:使用<script>alert('XSS攻击成功!')</script>语句和<script>alert(document.cookie)</script>语句进行xss攻击都失败。
  • 问题2解决方案:由于现代浏览器的安全机制,当使用innerHTML将脚本插入文档时,script元素不会被执行。因此改用img标签,使用<img src=x onerror="alert('XSS成功!')">语句进行攻击。

4.学习感悟、思考

xxx xxx

http://www.zskr.cn/news/74625.html

相关文章:

  • 2025年中国口碑好的包装箱木箱公司推荐:木头包装箱定制厂家
  • 【QT/C++】Qt基础控件详解:输入与显示控件(超详细) - 详解
  • 2025年12月YJV电力电缆,YJY电力电缆,橡套电力电缆厂家最新推荐:耐温性能测评与选购建议
  • MySQL 基本原理和架构(通俗易懂)
  • 实测openGauss 6.0 LTS向量版:国产数据库的 RAG 实践之路 - 教程
  • 2025年度天津短视频代运营TOP5权威推荐:力企业流量破局
  • 2025年天津关键词SEO机构排行榜,五大专业服务商测评推荐
  • 2025年12月鸡肠粉加工设备厂家推荐:权威排行榜单与选购指南
  • 对话式AI竞赛Alexa Prize新平台上线
  • 2025年度天津抖音代运营专业公司五大推荐:甄选口碑好的抖音
  • 2025年12月肉粉加工设备厂家推荐:五大品牌深度对比评测榜
  • 2025年12月肉粉加工设备厂家综合实力排行榜推荐及选购策略分析
  • 2025年12月肉粉加工设备厂家推荐:权威排行榜单深度评测与实用选购指南
  • 框架即导师,代码即课程:JBoltAI如何让Java开发者快速吃透企业级AI应用开发
  • 2025 年 12 月燕窝品牌权威推荐榜:溯源甄选,滋养臻礼,涵盖燕窝美食/糕点/阿胶糕/年礼等衍生佳品深度解析
  • InnoDB 索引 B+Tree 全剖析
  • 2025 年 12 月电线厂家权威推荐榜:铜芯/无氧铜/BVR/光伏/工业/家装/消防电线全品类深度解析与选购指南
  • 2025年中国干式快速接头制造商推荐:航空专用干式快速接头哪
  • 2025 年 12 月折弯机折边机厂家权威推荐榜:自动/数控/大型/全自动/铜排/异形折边机,实力工厂精准选型与高效加工解决方案
  • 2025 年 12 月油漆品牌权威推荐榜:环保漆、工业漆、木器漆、墙面漆,源头厂家精选与性能深度解析
  • 2025年液化气专用干式快速接头厂商推荐:干式快速接头供应企
  • 2025年五大靠谱本国端口锁企业推荐,专业的usb端口锁与信
  • 2025 年 12 月旋转接头厂家权威推荐榜:高温/高压/高速/液压/蒸汽/导热油/水用多品类精密密封解决方案深度解析
  • 2025 年 12 月制氮机厂家权威推荐榜:PSA制氮机装置,模组制氮机,氨气净化干燥装置,高效节能与稳定供气深度解析
  • 2025年12月喷码机厂家权威推荐榜:全自动/小字符/高解析/油墨喷码机,智能赋码与高效生产解决方案精选
  • 2025年度合肥无人机培训课程TOP5推荐:安徽新东方教学模
  • 2025年12月料仓源头厂家实力推荐榜:专业定制、耐磨防堵与智能清仓技术领先企业深度解析
  • 2025 初中学习机品牌推荐:简单一百学习机,破解选机痛点,赋能初中进阶
  • python pyproject.toml 项目打包及分发
  • 2025年上海南京杭州快速电动阀供应商推荐:靠谱的电动阀服务