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

news/2025/3/9 22:22:13/文章来源:https://www.cnblogs.com/2415trq/p/18590299

1.实验内容

(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试
(6)安装DVWA或WebGoat平台,并完成SQL注入、XSS、CSRF攻击。

2.实验过程

1.1 Web前端HTML
能正常安装、启停Apache。

service apache2 start    启动Apache


理解HTML,理解表单,理解GET与POST方法,
HTML是用于创建网页的标准标记语言。它使用各种标签来描述网页的结构和内容;
表单是HTML中的一个重要元素,用于收集用户输入的数据;
GET,数据传输方式,将表单数据附加在 URL 后面发送给服务器;
POST,数据传输方式,将表单数据包含在请求体中发送给服务器,而不是在 URL 中。所以数据对用户来说是不可见的。
编写一个含有表单的HTML,这里我使用的是之前Web课的注册界面


1.2 Web前端javascipt
理解JavaScript的基本功能,理解DOM。
JavaScript在Web里主要实现交互,包含交互功能、本地数据存储与处理数据、获取与处理、更新 CSS 样式、表单验证
DOM是一个编程接口,它将HTML或XML文档表示为一个树形结构的对象,通过这个接口,JavaScript 可以访问和修改网页的内容、结构和样式。
在1的基础上,编写JavaScript验证用户名、密码的规则。
嘿嘿,验证这部分我在Web实验里也写了,注册页面会对用户名长度进行限制,检验密码、邮箱格式


在用户点击登陆按钮后回显“欢迎+输入的用户名”,稍微修改下alert部分,由于要回显,就将alert()换成document.write()

尝试注入攻击:利用回显用户名注入HTML及JavaScript
因为我限制了用户名的输入长度,所以很难实现在用户名注入,所以把限制用户名长度部分给改了,在用户名那里输

20222415<script>alert("讨厌您来");</script>

注入成功,从这里也可以看到,对输入进行限制和检测还蛮重要的。

20222415<h1>讨厌您下次再来</h1>


1.3 Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
kali是有Mysql的,开启看一下是否开启成功

sudo systemctl start mysql
systemctl status mysql


开启成功了,接下来建库

mysql -u root -p   登录数据库
use mysql    使用mysql
create DATABASE 20222415DB;      建数据库
show DATABASES;


创建用户

create user 'trq'@'%' IDENTIFIED BY '123456';  创建用户trq,密码为123456,任何主机都能登录
GRANT ALL PRIVILEGES ON 20222415DB.* TO 'trq'@'%';  将20222415DB的所有权限授给trq
FLUSH PRIVILEGES;    更新下权限
ALTER USER 'trq'@'%' IDENTIFIED BY '20222415';    修改trq密码
SHOW GRANTS FOR 'trq'@'%';     看一下trq权限


进数据库建表

use 20222415DB  切换到20222415DB数据库
建表
CREATE TABLE `userlogin` (`userName` varchar(20) NOT NULL,`userPwd` varchar(20) NOT NULL,`usermail` varchar(20) NOT NULL
);
设置主键
ALTER TABLE `userlogin`ADD PRIMARY KEY (`username`);
查看表
SHOW TABLES;


1.4 Web后端:编写PHP网页,连接数据库,进行用户认证
php代码

数据库里已经有了信息

登录失败和成功会跳转相应界面


1.5 最简单的SQL注入,XSS攻击测试
SQL注入

用户名:aaa
密码:' or '1'='1

没有这个用户,但注入成功了

XSS

用户名:<script>alert("XSSattack")</script>


1.6 选做Webgoat或类似平台的SQL注入、XSS、CSRF攻击各一例
使用Webgoat平台
SQL注入

,选择Smith' or '1'='1

XSS
card number会回显,所以在这个框里输入

CSRF
CSRF通过伪装成受信任用户请求受信任的网站。
原本用户叫2415trq
在另一个登录页面注册用户创建一个用户csrf-2415trq,以新用户身份登录。
2415trq在原页面点击按钮就会被新用户得知。

3.问题及解决方案

  • 问题1:在进行script注入时,无论我输入什么它都会将我的输入直接显示出来而不是执行。
  • 问题1解决方案:在回显时我用的函数是alert(),改成ducoment.write就可以成功了。

4.学习感悟、思考等

本次实验我编写了登录界面并将其连接到了mysql数据库来进行登陆验证,并对其进行了注入攻击,还在靶场里进行了SQL注入、XSS、CSRF攻击训练。本次实验我最苦手的就是编写php,我Web学得就不是很好,这次编写代码就很是头痛。特别是php的代码,我改错改了很久才改好。到靶场训练部分,其实我三个靶场都搭建好了,但是我都试了一下只有Webgoat是好用的,pikachu能用但我不大熟悉,DVWA就是完全用不了,可能是我搭建得有问题。虽然本次实验是完成了,但是我对Web安全得学习还有很长的路要走,我也会在之后继续学习得。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855929.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Odoo18.0 Pos中使用Windcave支付

Windcave 是新西兰的一家领先支付技术公司,专注于提供支付解决方案和技术,帮助企业接受各种电子支付方式。该公司原本名为 Payment Express,后来在2020年更名为 Windcave,旨在体现其为全球支付行业带来创新和便捷的愿景。 本文将介绍如何在Odoo18.0门店系统(POS)中接入Wind…

给网站设置三级域名

适用于使用 Github Pages 部署的网站,域名平台不限,可以是腾讯云,也可以是阿里云1. 域名站点新增解析 以腾讯云为例,新增解析记录如下红框内所示,其余解析记录之前是给主域名添加的,185.199.111.153 等都是 github.io 的IP地址 需要注意的是,添加的记录值为 你的github账…

提升电商商品数据分析效率,关键在这里!

商品数据背后的秘密:电商团队如何用协同工具打造数据驱动决策 数据是电商行业的生命线,而商品数据分析是核心驱动力之一。从日销额到库存周转,从热销品类到滞销清单,每一组数据都蕴藏着优化运营的关键。然而,许多电商团队在实际操作中却面临以下难题: 1. 数据孤岛:各部门…

最强AI智能体竟如此简单!Anthropic首次公开内部秘籍!

0 前言 过去一年中,我们与不同行业中开发大语言模型 (LLM) 智能体的多个团队进行了合作。我们发现,最成功的实现并非依赖复杂的框架或专业化的库,而是通过简单、可组合的模式构建。 本文分享从客户合作及自身开发智能体的过程中所学到的经验,并为开发者提供构建高效智能体的…

Kali下修改系统时间——tzselect

tzselect:交互式选择时区一、命令介绍 tzselect命令用于交互式选择系统时区。 二、命令示例 登录到Kali上发现系统时间与本地时间相差一个小时这可不行啊,那就手动修改一下吧,运行tzselect会有很多想选供我们选择,如非洲、亚洲等,我们选择亚洲之后到具体国家选择模块,毫无…

IGM机器人维修的关键环节

在现代科技领域,机器人已经成为不可或缺的一部分,它们广泛应用于各个行业,包括制造业、服务业、医疗、科研等。对于任何机器人来说,定期的维护和修理都是必不可少的。这不仅可以确保机器人正常工作,还可以延长其使用寿命。对于IGM机器人维修工作显得尤为重要,因为任何故障…

c#多语言实现

也许你会有多语言这样的需求,后期方便添加语言,基于这样的需求写了个辅助类; 先看代码:1 public class LanguageHelper2 {3 private static Dictionary<string, string> m_lstLanguage = new Dictionary<string, string>();4 private static Dictionar…

无法访问 Maven 3.8.1 http 仓库

1.情景展示 从git上面下载下来的项目,项目导包失败,具体报错信息如下: 无法访问 Maven 3.8.1 http 仓库 可能的解决方案:检查 Maven settings.xml 是否不包含 http 仓库 检查 Maven pom 文件是否不包含 http 仓库 http://maven.aliyun.com/nexus/content/groups/public/ 在 …

类文件结构详解 .class文件

回顾一下字节码 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运…

《黑神话:悟空》史诗级更新!ToDesk云电脑免下载畅玩!

重磅消息!《黑神话:悟空》终于迎来史诗级更新!新功能、新玩法、还有新套装,之前玩家提的地图、小曲进度条,游戏科学都安排上了,这更新内容的诚意度堪比DLC!首先是新玩法增加挑战又叫boss rush,天命人打通一周目后,在土地庙进入挑战,分为复战和连战模式。 复战模式可以…

昂瑞微 OM6626:芯片界的超级 “多面手”

嘿,各位科技迷们!今天咱要来探秘一下芯片界的一位 “全能明星”—— 昂瑞微 OM6626。这小家伙的诞生,那可是有一番精彩故事呢!一、诞生背景:时代呼唤的 “超级英雄” 如今这物联网的世界,那发展速度就跟坐了火箭似的。大家对低功耗、高性能的无线通信芯片,那叫一个渴望啊…

C++实现windows自动化按键

1.选择目标窗口 获取窗口句柄 void KeyPresser::selectWindow() {SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);selectedWindowLabel->setText("请点击目标窗口..."); }void CALLBACK K…