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

20212326李齐琨 2024-06-05 19:21:29

1.实验内容

1.1Web前端HTML

能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。

1.2Web前端javascipt

理解JavaScript的基本功能,理解DOM。
在1.1的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。

1.3Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表

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

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

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

2.实验过程

(1)Web前端HTML
1.安装并启动Apache
在kali终端输入如下命令:

netstat -tupln | grep 80 //查找正在监听TCP或UDP端口80的进程
systemctl start apache2 //启动Apache HTTP服务器
netstat -aptn //显示系统上所有的TCP连接和监听套接字

在浏览器中访问网址 http://127.0.0.1/ ,发现Apache开启成功,如下图所示:

img

2.编写一个含有表单的HTML
在kali终端输入“ vi /var/www/html/20212326.html ”命令( /var/www/html/ 通常是Apache HTTP服务器在Linux系统中用于存放Web内容的默认目录),编辑创建一个登陆界面,代码具体如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"></head>
 
<body>
    <h1>Login</h1>
    <form  method="post">
        <font>账号:</font>
        <input type="text" name="username" id="username"><br>
        <font>密码:</font>
        <input type="password" name="password" id="password"><br>
        <button onclick="login()">login</button>
    </form>
</html>

如下图所示:

img

3.浏览器打开编辑的网页
打开浏览器,访问网址 http://127.0.0.1/20212326.html

img

(2)Web前端javascipt
1.编写JavaScript验证用户名、密码的规则,在用户点击登陆按钮后回显“欢迎+输入的用户名”


<script>
function login(){
const usrname=document.getElementById("username").value;
const password=document.getElementById("password").value;
if (username === "" || password === "") {  
    alert(" username or password can not be null!");  
    return;  
}  
 
 
else if (password !== "20212407") {   
    alert(" Your username is wrong!");  
    return;   
}
 
else { 
document.write("Welcome! "+username) 
}
}
</script>

3.浏览器打开编辑的网页
打开浏览器,访问网址 http://127.0.0.1/20212326.html
若输入的账号或者密码为空:

img

若输入的密码错误:

img

输入密码正确,则登陆成功:

img

4.尝试注入攻击

注入HTML
在网页的账号的文本框中输入“20212326”进行HTML注入,密码不变,最后会在登陆界面输出一级标题“20212326”,如下图所示:

img

注入JavaScript
在网页的账号的文本框中输入“”进行JavaScript注入,密码不变,最后会出现“20212407”的提示框,如下图所示:

img

(3)Web后端:打开MYSQL

service mysql start
mysql -u root -p


img

依次输入

show databases;
use mysql;
select user, password, host from user;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('20212326');
flush privileges;
quit

3.3创建表
依次输入
create table login (username VARCHAR(20),password VARCHAR(20));
insert into login values('202123lqk','0000');
select * from login;

3.4对用户赋权
GRANT SELECT, INSERT, UPDATE, DELETE ON wjt.* TO '20212326lqk'@'localhost' IDENTIFIED BY '0000';

3.5新用户能够登录

img

(4)Web后端:编写PHP网页,连接数据库,进行用户认证

systemctl start mysql
 
sudo mysql -u root -p
创建数据库
create database fir;
创建用户和密码
CREATE USER 'ydb'@'localhost' IDENTIFIED BY '2314';
赋予权限
GRANT ALL PRIVILEGES ON fir TO 'ydb'@'localhost'; 
刷新
FLUSH PRIVILEGES;
使用数据库
use fir;
创建表
CREATE TABLE login ( username VARCHAR(10) NOT NULL, password VARCHAR(20) NOT NULL );
插入数据
insert into login values('lqk','2326');

img

2326.php

<?php
 
$servername = "localhost";
$username = "lqk";
$password = "2326";
$dbname = "fir";
 
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
 
// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
 
// 获取用户输入的用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];
 
// 直接从数据库中检索用户凭据
$sql = "SELECT * FROM login WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    // 用户认证成功,设置会话变量并重定向到主页
    echo "{$username} Welcome!";
} else {
    // 用户认证失败,显示错误信息
    echo "Invalid username or password";
}
 
$conn->close();
?>

修改html文件

img

img

(5)最简单的SQL注入,XSS攻击测试
SQL注入

' or 1=1#

img

XSS攻击

<script> alert("XSS") </script>

img

(6)安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。
pikachu安装

img

SQL注入

img

img

XSS

img

CSRF攻击

img

再F12查看网络流量

img

修改URL
http://127.0.0.1/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=1&phonenum=1&add=1&email=2326&submit=submit

img

3.学习感悟、思考等

本次实验完成的很轻松,在之前的网编课程中已经有所涉猎。这次试验不仅锻炼和巩固了我在Web前后端开发中的基本代码编写能力,还让我对Kali Linux系统的基础文件操作有了更为深入的了解。通过这次综合性的实践练习,我更加深入地理解了网络安全操作的重要性,并将课堂上所学的知识转化为了实际技能。

...全文
297 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

98

社区成员

发帖
与我相关
我的任务
社区描述
网络攻防作业
网络安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧