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

20212414王久涛 2024-06-06 22:54:49

一、实验目的
(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攻击。

二、实验过程
1.1.在Kail中输入“service apache2 start”开启Apache服务。

1.2.Kail的浏览器中输入回送地址127.0.0.1,显示Apache默认网页,查看是否开启成功。

img

1.3.使用指令“cd /var/www/html”进入Apache目录下。使用nano 20212414_login.html创建文件,编写登陆界面的HTML代码,并保存。

img

在浏览器中输入localhost/20212414_login.html来访问页面。

img

1.4.对表单、GET和、POST的理解
表单:很多时候需要在网页上和后台进行数据的交互,这个时候就需要使用到表单。它包含action和method属性。
GET: 数据通过URL传递,附加在URL后面,形成查询字符串。例如:http://www.example.com/login?username=user&password=pass
POST: 数据在请求体中传输,不会显示在URL中。

2.1.Web前端JAVAScript
JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,其功能有:
嵌入动态文本于HTML页面;对浏览器事件做出响应;读写HTML元素;在数据被提交到服务器之前验证数据;检测访客的浏览器信息等等。
DOM是Web开发中的核心概念,它使得Web页面的动态交互成为可能。
在20212414_login.html中添加JavaScript


<script type="text/javascript">
    function validateForm() {
        var username = document.forms["login"]["username"].value;
        var password = document.forms["login"]["pwd"].value;                               
        if (username == "" || username == null) {
            alert("用户名不能为空!");
            return false;
        }
        if (password == "" || password == null) {
            alert("密码不能为空!");
            return false;
        }
        return true; // 如果所有检查通过,则允许表单提交
    }
</script>

img

img

3.1打开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('20212414');
flush privileges;
quit

img

以上就完成了更改口令的过程,新口令为20212414

3.2创建库
依次输入
mysql -u root -p
create database wjt;
show databases;
use wjt;

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

img

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

3.5新用户能够登录

img

4.1在html文件夹中创建20212414welcome.php
cd /var/www/html
nano 20212414welcome.php

<?php
 
 
 
// 检查表单是否已经被提交
    // 获取用户名和密码
   $username = $_POST['username'] ?? '';
   $pwd = $_POST['pwd'] ?? '';
    // 直接构造SQL查询字符串
    $sql = "SELECT * FROM login WHERE username = '$username' and password ='$pwd'";
    //连接数据库
                                                               用户                  密码     数据库
    $mysqli =new mysqli("127.0.0.1","20212414wjt","0000","wjt");    
if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
   exit(); //退出
}
//连接成功
echo "成功连接~";
    // 执行查询
    $result = $mysqli->query($sql);
 
    // 检查结果
    if ($result ->num_rows>0) {
            // 用户名和密码匹配
            echo "<h1><center>欢迎登陆!!!{$username} </center></h1>"  ;
        } 
else {
            // 用户名不存在或密码错误
            echo "用户名不存在或密码错误,请退回重新输入。";
        }
 
$result->close();  
$mysqli->close();
?>

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

98

社区成员

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

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