当前位置: 首页 > 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.jsqmd.com/news/64078/

相关文章:

  • VC(9.0~14.x)运行库下载链接
  • Kubernetes集群的搭建与DevOps实践(上)- 架构设计篇
  • 2025年景观护栏设计公司五大推荐,景观护栏设计厂家选哪家合
  • 2025年中国口碑好的包装箱木箱公司推荐:木头包装箱定制厂家
  • 2025年电线电缆,国标电线电缆,铜芯电线电缆厂家推荐:行业盘点与品质红榜发布
  • 2025年电线电缆,国标电线电缆,铜芯电线电缆厂家推荐,高稳定,导电强的行业优选
  • 【QT/C++】Qt基础控件详解:输入与显示控件(超详细) - 详解
  • 2025年电线电缆,国标电线电缆,铜芯电线电缆厂家推荐,导电工艺与市场口碑深度解析
  • 智能安全帽哪家好?哪家智能安全帽质量管控严
  • 2025年12月YJV电力电缆,YJY电力电缆,橡套电力电缆厂家最新推荐:耐温性能测评与选购建议
  • MySQL 基本原理和架构(通俗易懂)
  • 2025激光设备市场权威排名:华工激光引领国产替代浪潮
  • 完整教程:C语言变量与输入输出详解——从printf到scanf的全掌握
  • 实测openGauss 6.0 LTS向量版:国产数据库的 RAG 实践之路 - 教程
  • 2025年度天津短视频代运营TOP5权威推荐:力企业流量破局
  • 2025年天津关键词SEO机构排行榜,五大专业服务商测评推荐
  • 2025年辽宁建筑资质升级推荐排行榜,新测评精选服务公司推荐
  • 2025年12月鸡肠粉加工设备厂家推荐:权威排行榜单与选购指南
  • NOI Plus 游记
  • 2025年12月鸡肠粉加工设备厂家推荐:权威排行榜单及深度对比分析指南
  • 对话式AI竞赛Alexa Prize新平台上线
  • 2025年12月鸡肠粉加工设备厂家推荐:全维度对比排行榜单及选购策略分析
  • 2025年12月鸡肠粉加工设备厂家推荐:全维度对比排行榜单及选购策略分析
  • 2025年度天津抖音代运营专业公司五大推荐:甄选口碑好的抖音
  • 2025年12月肉粉加工设备厂家推荐:专业对比评测排行榜单深度分析指南
  • 遗忘
  • 2025年靠谱的农业沙盘模型最新TOP品牌厂家排行
  • 2025年12月肉粉加工设备厂家推荐:基于市场表现的权威评测与综合实力排行榜
  • 2025年12月肉粉加工设备厂家推荐:五大品牌深度对比评测榜
  • 2025年12月肉粉加工设备厂家综合实力排行榜推荐及选购策略分析