20222234 石国力 《网络与系统攻防技术》 实验八
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.实验过程
2.1 Web前端HTML
2.1.1 正常安装、启停Apache
使用service apache2 start命令打开Apache服务。此时在浏览器输入 127.0.0.1,如果可以打开Apache的默认网页,则表示开启成功!
查看Apache状态。
显示开启状态
关闭apache,并查看状态。
显示关闭
2.1.2对HTML,表单,GET与POST方法的理解
(1)HTML是构建网页和网络应用的核心标准语言。
(2)表单是网页中用于收集用户输入信息的重要组件。
(3)GET方法:GET方法是从服务器获取数据的一种请求方法。
(4)POST方法:POST方法是向服务器发送和处理敏感或大量表单数据的一种请求方法。
2.1.3 编写一个含表单的HTML
先在记事本写好含表单的登陆页面html代码
cd /var/www/html 进入html的文件夹
touch 20222324.html 创建html文件
进入编辑页面,将html代码粘贴进去
service apache2 start 打开Apache服务
使用浏览器打开制作的网页,在浏览器输入localhost/20222324.html
可跳转到自己的登陆界面。
可提交表单,实现跳转
2.2 Web前端javascipt
2.2.1 理解JavaScript的基本功能,理解DOM
JavaScript是一种基于对象和事件驱动的脚本语言,广泛应用于客户端网页开发。它具备相对较高的安全性,并通过其核心组件实现了动态内容展示与交互功能。
DOM的作用:
访问文档结构、操作元素属性、事件处理、创建删除元素、遍历文档树
2.2.2 编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
在login.html加上一段JavaScript正则表达式,来判断用户是否填写了用户名和密码。
我设定的规则为:用户名须为6-12位字母/数字/中文,密码为1-20位纯数字。
只填用户名,且不符合要求
用户名符合要求,密码不符合要求
编写一个在用户点击登陆按钮后回显“欢迎+输入的用户名”的PHP页面
在浏览器输入localhost/20222324.html,输入正确格式的用户名和密码后点击登录,成功跳转到欢迎界面
2.2.3 尝试注入攻击:利用回显用户名注入HTML及JavaScript
1.注入HTML
2.在登陆界面输出一级标题,如下图所示:
3.注入JavaScript
4.会出现sgl的提示框,如下图所示:
2.3 Web后端:MySQL基础,正常安装、启动MySQL,修改密码、创建用户、修改密码、建表
(1)1打开MySQL服务
(2)显示MySQL服务的当前目前状态
(3)启动MySQL服务
(4)登录到MySQL数据库
输入mysql -u root -p使用root权限进入,需要输入密码(就是你登录的密码)
(5)建立数据库
插入数据:用户名20222324sgl;
密码:2324;
并查询login表中的数据
(6)创建用户、修改密码
2.4Web后端:编写PHP网页,连接数据库,进行用户认证
(1)创建一个php文件,代码如下:
(2)验证
2.5 最简单的SQL注入,XSS攻击测试
2.5.1 SQL注入
把用户名改成' or 1=1#
这个无论你输入什么,都可以登录进去。
2.5.2 XSS攻击
把用户名改成
提示1成功了。
2.6 安装DVWA或WebGoat平台,并完成SQL注入、XSS、CSRF攻击。
这个题目没有时间做了。
3.问题及解决方案
这个实验做下来很顺,没有遇到什么问题。
4.学习感悟、思考等
经过这一系列的Web安全实验,我深刻体会到了Web开发与安全防护的重要性与复杂性。从基础的Web前端技术到后端数据库管理,再到安全漏洞的挖掘与防御,每一步都让我受益匪浅。在HTML的学习过程中,我掌握了基本的网页结构设计和表单处理技巧。通过亲手编写含有表单的HTML页面,我理解了GET与POST方法的区别及其在实际应用中的选择依据。在MySQL的学习过程中,我掌握了数据库的安装、启动、建库、建表以及用户管理等基本操作。这不仅为我后续的实验打下了坚实的基础,也让我对数据库技术有了更深入的了解。在SQL注入和XSS攻击测试中,我深刻体会到了安全漏洞的危害性。通过简单的SQL注入和XSS攻击,我成功地绕过了前端验证和后端的部分安全措施,获取了敏感信息或执行了恶意代码。这让我意识到,安全防护必须全面而细致,不能有丝毫的疏漏。