1.实验内容
1.1本周学习内容
(1)掌握基于html、php等编程工具实现简单前后端的编写
(2)理解apache在网站展示中的意义,认识到tomcat等web应用服务器工具的使用
(3)学习到以mysql为代表的数据库在网页项目中的具体使用
(4)通过webgoat、DWVA、pikachu等平台理解sql注入、xss、csrf等攻击的原理与其具体实现方法
(5)学会burpsuit的使用方法,掌握了口令爆破的基本方法
1.2实验具体任务
(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)编写Web前端javascipt,在理解DOM的基础上,实现用户点击登陆按钮后回显“欢迎+输入的用户名”,并利用回显用户名注入HTML及JavaScript。
(3)完成Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)完成Web后端:编写PHP网页,连接数据库,进行用户认证
(5)实现最简单的SQL注入,XSS攻击测试
(6)安装DVWA或WebGoat平台,并完成SQL注入、XSS、CSRF攻击。
2.实验过程
2.1Web前端HTML
首先什么是Apache?
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。在web网页设计课上我们就是使用其子工具tomcat实现将我们的项目部署在主机某服务器端口下
因此当我们要搭建一个网页时,必须保证apache是可用的,因此,在kali中,我们首先需要再命令行中输入systemctl start apache2
以启动该服务。
同时我们可以通过输入systemctl status apache2
以检查其状态。由下图我们可以看出,在启动后该服务的状态已经变成了active(running),即活跃状态。
当在kali浏览器里输入127.0.0.1返回如图界面时,也可以证明该服务已启动。
于是我们就可以开始尝试网页的编写
本实验中我所使用的网页代码为
点击查看代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EasyWeb</title>
<style>
form {
padding: 150px;
width: 400px;
margin: 100px auto;
}
label {
display: block;
margin-top: 10px;
}
input {
width: 100%;
padding: 5px;
background-color:antiquewhite;
}
input[type = "submit"] {
margin-top: 15px;
background-color:ghostwhite;
color:black;
border: none;
padding: 8px 15px;
}
</style>
</head>
<body bgcolor="#faebd7">
<form name="myForm" action = "20222319.php" method = "get" id="myForm" onsubmit="return check()">
<hi>welcome to 20222319zzs's testweb</hi>
<label for = "name">账号:</label>
<input type = "text" id = "name">
<label for = "password">密码:</label>
<input type = "password" id = "password">
<input type = "submit" value = "提交">
</form>
</body>
在windows主机上其实现效果如图
于是我们将该文件放入kali虚拟机中/var/www/html
的相应目录下,将该网页装载到服务器上
如果除了用管理员权限打开目标文件夹再将html拖入之外,我们也可以通过指令sudo cp 20222319.html /var/www/html/20222319.html
直接将文件复制进相应目录下,如图
此时我们可以在kali浏览器url中输入http://127.0.0.1/20222319.html
即可访问我们装载上去的html,效果与主机上一致。
当我们随意输入一些信息,并点击提交后,我们可以看到输入的数据是直接在url中传输的,
即
http://127.0.0.1/20222319.php?name=20222319&password=zzs
当然,由于此时我设置跳转的php文件还没写好,因此其返回的是404,但确实成功展示了GET请求的特点,即数据明文传输。
但当传输方式为POST时(在代码中修改),数据就不会再url中明文传输了,而是改为作post的一部分传输,如图。
所以简单来说,GET与POST最大的区别就是跳转url中会不会有明文数据
那什么是表单呢?
实际上,表单就是我们html代码中的<form>...</form>
内容,因此我们的输入信息与输入框、跳转按钮在内的各种组件都在其中,
所以总的来说,就是
表单是由 HTML 表单标签 (