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

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

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.1 Web前端HTML

  1. 开启apache2服务
systemctl start apache2

请添加图片描述

  1. 然后在浏览器中输入127.0.0.1,显示apache界面,服务成功开启

请添加图片描述

  1. 进入 /var/www/html路径,新建一个表单的html文件
    请添加图片描述
  2. 然后进行编写,按要求完成一个带表单的html代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>testzy</title>
 
    <script>
        function login() {
            const username=document.getElementById("username").value;
            const password=document.getElementById("password").value;
            if(username===""||password===""){
                alert("用户名密码不能为空!");
                return;
            }
            document.write("Welcome! "+username)
        }
    </script>
</head>
 
 
<body>
    <h1>20212306 Exp8</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>
</body>
</html>

请添加图片描述

  1. 然后在浏览器中输入/var/www/html/20212306login.html,我们可以看到打开的就是我们刚刚编写的html
    请添加图片描述
    提交的效果如下:
    请添加图片描述

2.2 Web前端JavaScript

  1. 在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
    在2.1的基础上我们已经编写好了相关的代码,具体代码如下:
   <script>
        function login() {
            const username=document.getElementById("username").value;
            const password=document.getElementById("password").value;
            if(username===""||password===""){
                alert("用户名密码不能为空!");
                return;
            }
            document.write("Welcome! "+username)
        }
    </script>

通过 if(username===""||password===""){ alert("用户名密码不能为空!"); return; } document.write("Welcome! "+username)我们可以判断输入的用户名和密码是否为空,如果为空,我们就会出现提示,如果不为空,则跳转到“欢迎+输入的用户名”的网页。

  • 尝试注入攻击:利用回显用户名注入HTML及JavaScript
  • 进行html注入<p>zhangyang</p>
    效果如下:
    请添加图片描述
    请添加图片描述
  • 尝试JavaScript注入:<script>alert("zhangyang")</script>
    效果如下:
    请添加图片描述
    请添加图片描述

2.3 Web后端:MySQL基础

  1. kali中有自带的数据库,需要先打开服务
systemctl start mysql # 打开mysql服务
systemctl status mysql # 查看服务当前状态

请添加图片描述

service mysql start
mysql_secure_installation 
mysql -u root -p //登录,此时密码为空
use mysql //使用数据库
show databases; //查看已有数据库

注意show databases; 这个代码段一定要带分号,第一次尝试因为没带分号就查看不了数据库!一定要注意
请添加图片描述

  1. 创建用户zhangyang
create user 'zhangyang'@'%' IDENTIFIED BY '20212306';

请添加图片描述

  1. 然后创建一个数据库
create database 20212306zy; //创建数据集!注意加分号
use 20212306zy   //使用数据库

请添加图片描述
创建用户数据表

create table loginuser (name VARCHAR(20),password VARCHAR(30));

插入数据

insert into loginuser values('zy','20212306');

查看数据表

select * from loginuser

请添加图片描述

  1. 然后我们给新用户数据库20212306zy的全部权限
GRANT ALL PRIVILEGES ON 20212306zy.* TO 'zhangyang'@'%';
FLUSH PRIVILEGES;

请添加图片描述

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

html:

请添加图片描述
php:
请添加图片描述

然后我们打开20212306login1.html
输入数据库中的,用户账号:zy 密码:20212306
请添加图片描述
请添加图片描述

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

  • SQL注入:
    用户账号处随便输入,密码处输入' or '1'='1
    请添加图片描述
    可以看到,这个账号在我们的数据库中并没有,但是当我们进行SQL注入攻击的时候,会显示登陆成功
    请添加图片描述

  • XSS攻击

<script>alert("zy_XSSattack")</script>密码处仍然输入' or '1'='1
请添加图片描述
点击登录,可以看到出现弹窗,攻击成功

请添加图片描述

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

首先要下载配置phpstudy集成开发环境,然后在phpstudy文件夹下的www中放入下载好的pikachu文件,
靶场搭建教程
然后在浏览器中输入http://127.0.0.1/pikachu/,可以看到如下界面

请添加图片描述
(1)SQL注入
搜索SQL ,输入刚刚一直在尝试的' or '1'='1,可以看到注入成功!
在这里插入图片描述

在这里插入图片描述

  • XSS注入
<script>alert("xss")</script>

在这里插入图片描述

  • CSRF攻击
    我们选择CSRF(get)攻击的项目,然后可以点击提示可以看到已有的用户名和密码请添加图片描述

我们尝试登陆一下,然后出现如下界面

请添加图片描述
然后我们选择修改信息,用bp进行抓包
提交的请求

GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=19216811133&add=dky&email=vince%40pikachu.com&submit=submit

并没有看到CSRF的token,说明没有防CSRF的措施。

我们可以构造 一个url,修改其中的电话号码部分,发给被攻击者

http://192.168.11.134/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=20212306&add=dky&email=vince%40pikachu.com&submit=submit

可以发现vince的电话号码被篡改

请添加图片描述

CSRF攻击成功!

3. 问题及解决方案

问题1:pikachu无法实现抓包
问题1解决方案:在电脑上,我先是用wireshark进行抓包,但是尝试了多次都没有抓到包。于是我参考了一些同学的实验报告 ,向我的舍友请教!我舍友建议我下载bp,用bp进行抓包。在用bp抓包之前,我们要打开代理,同时进入那个网页的时候要把127.0.0.1换成自己的ip地址,我是满足了这两个条件才抓到包的。

4. 学习感悟、思考等

本次实验是网络攻防的最后一次实验了。总体还是比较顺利的,卡住的地方就是在靶场CSRF攻击任务中抓包的地方,但是在请教了同学和舍友之后也是一个问题一个问题解决,最终成功把实验做出来了。
在一开始的时候觉得课程的八个实验真的很多,在做这些实验的过程中,也遇到了很多问题,经常崩溃,但是也都是一个个做过来了,其中多亏了老师和同学的帮助,虽然过程坎坷,但是在一次次实验中,感觉自己也是学到了一些东西,虽然每次做攻击实验的时候都要把防火墙关了才能攻击成功,我深刻的知道我们这种攻击的技术并不高,但是这些实验让我初步接触了网络攻防技术,同时让我深刻意识到在网络的世界中我们需要格外注意个人信息安全。
感谢老师一学期以来的帮助和指导!感谢同学们的帮助!

  • 38
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值