20212413 2023-2024-2 《网络与系统攻防技术》实验8实验报告

20212413 2023-2024-2 《网络与系统攻防技术》实验8实验报告

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)安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。

2.实验过程

2.1Web前端HTML

1.启动Apache服务

systemctl start apache2

在这里插入图片描述

2.在kali浏览器中输入kali的IP地址,查看Apache服务是否启动。
在这里插入图片描述
3.在kali终端进入html文件夹,编写一个含有表单的HTML。

# 进入html文件夹
cd /var/www/html/
# 创建并编写一个html
nano 20212413login.html

在这里插入图片描述
在这里插入图片描述
4.双击20212413login.html文件,跳转至网页。
在这里插入图片描述

2.2 Web前端javascipt

1.在20212413login.html的body中编写javascript代码,然后在按钮中添加onclick属性。
在这里插入图片描述
在这里插入图片描述
3.这时双击20212413login.html文件,跳转网页,如果在登录名或密码为空的情况下点击登录按钮,会弹出消息提示。
在这里插入图片描述
在这里插入图片描述

4.利用回显用户名注入HTML及JavaScript,命令如下:

<p>HTML注入攻击来自20212413hzj</p>

<script type="text/javascript"> alert("JavaScript注入攻击来自20212413hzj") </script>

在这里插入图片描述
在这里插入图片描述

2.3 Web后端:MySQL基础

1.进入root账户,启动mysql服务。

# 打开mysql服务
systemctl start mysql
# 查看服务当前状态
systemctl status mysql 

在这里插入图片描述
2.新建数据库exe8。

# 创建一个新数据库
create database exe8; 
# 查看现有的数据库
show databases;
# 使用该数据库
use exe8;
# 在数据库中创建登陆用户表
create table loginuser (uname VARCHAR(20),password VARCHAR(30));
# 在登陆用户表中添加一条记录
insert into loginuser values('20212413','20212413');
 # 查看登陆用户表记录
select * from loginuser;
# 添加名为hezhongjian的用户可以通过本机使用20212413作为密码进行登录
grant select,insert,update,delete on exe8.* to hezhongjian@localhost identified by "20212413";

在这里插入图片描述
在这里插入图片描述

2.4 Web后端:编写PHP网页

1.编写PHP网页,连接数据库,进行用户认证。
在这里插入图片描述
2.在前端将action修改成php文件,这个地方我出了点错误,在后面的问题及解决方案详细说明。
在这里插入图片描述
3.正确用户名和密码,错误的用户名和密码截图如下。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

1.SQL注入,用户名最后输入 ’ or 1=1# 。
在这里插入图片描述
在这里插入图片描述
2.XSS攻击测试,在用户名输入如下,可实现XSS攻击。

<script> alert("20212413的hzj攻击") </script>

在这里插入图片描述
在这里插入图片描述

2.6安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击

1.安装webgoat,下载链接:https://github.com/WebGoat/WebGoat/releases
2.输入命令启动webgoat服务,在浏览器中打开

ava -jar webgoat-server-8.1.0.jar
http://localhost:8080/WebGoat/

在这里插入图片描述
3.注册webgoat,用户名和密码均为学号就行了。
在这里插入图片描述

2.6.1SQL注入攻击

实现原理:where后的条件中有一个永真条件即可。
在这里插入图片描述
在这里插入图片描述

2.6.2XSS攻击
<script> alert("20212423_Reflected XSS") </script> 

在这里插入图片描述

2.6.3CSRF攻击

在这里插入图片描述
原网站点进去长这样,看不到flag
在这里插入图片描述
复制目标网页源代码然后存到本地,找到隐藏的from表单,存下来,然后在action的地址前加上
在这里插入图片描述
点击图中的按钮即可获得flag=15088
在这里插入图片描述
回答正确
在这里插入图片描述

3.问题及解决方案

  • 问题1:我的html网页输入用户名和密码后无法直接跳转到php,提示要下载。

  • 问题1解决方案:这是由于我在html的action中直接输入本地文件名(20212413login.php),无法正确加载,所以提示要下载,这是在本地文件名前加上http://127.0.0.1/,就可以直接跳转了。

  • 问题2:我的html在输入正确的用户名和密码时无法跳转至成功登陆的页面。

  • 问题2解决方案:是因为我在html中设置用户名和密码分别是:user和upwd,在php中我设置的是user和pwd,密码名字前后不一致

4.学习感悟、思考等

在本次实验中,我深入体验了Web开发的全流程,从前端到后端,再到安全测试,每一步都充满了挑战与收获。

实验的起点是Web前端开发,我首先学习了HTML的基础知识,理解了如何使用标签来构建网页的结构。通过对表单、GET与POST方法的学习,我认识到了表单在用户与服务器交互中的重要作用。我成功编写了一个含有表单的HTML页面,这让我对Web前端的开发有了初步的认识。

随后,我探索了JavaScript和DOM,理解了它们在实现网页交云功能中的关键作用。在已有的HTML页面基础上,我添加了JavaScript代码来验证用户名和密码的规则,实现了在用户点击登录按钮后回显“欢迎+输入的用户名”的功能。这一过程不仅加深了我对JavaScript基本功能的理解,也让我体会到了前端开发的灵活性。

在Web后端的学习中,我安装并配置了MySQL数据库,掌握了建库、创建用户、修改密码和建表的基本操作。这些操作对于Web应用的数据存储至关重要。

之后,我转向了PHP编程,编写了一个简单的网页来连接数据库并进行用户认证。这个过程让我理解了Web后端开发的核心逻辑,也让我认识到了后端代码对于整个Web应用安全性的影响。

在实验的最后阶段,我进行了SQL注入和XSS攻击的测试。通过构造恶意的SQL语句和HTML、JavaScript代码,我模拟了攻击者可能使用的攻击手段。这些测试让我对Web应用的安全隐患有了更深刻的认识,也激发了我对网络安全的兴趣。

为了更系统地学习和测试Web安全,我安装了Webgoat平台,并完成了SQL注入、XSS、CSRF等攻击的练习。通过这些练习,我不仅学习到了各种常见的Web攻击手段,也掌握了基本的防御策略。

总的来说,这次实验不仅提升了我的Web开发技能,也加深了我对网络安全的理解。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值