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

在这里插入图片描述

一、实验内容

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攻击。

二、实验知识

javascript:JavaScript 是一种广泛用于网页开发的脚本语言,它可以直接在用户的浏览器中运行,以动态地改变网页的内容、控制多媒体、动画效果等。JavaScript 是一种解释型语言,这意味着它不需要在执行之前进行编译。
sql注入:SQL注入是一种攻击技术,它利用Web应用程序对用户输入数据的合法性判断或过滤不严的漏洞,通过在应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,欺骗数据库服务器执行非授权的任意查询,从而获取相应的数据信息。SQL注入的工作原理是攻击者通过修改Web页面的原URL、表单域或数据包输入的参数,将其修改拼接成SQL语句,然后传递给Web服务器,进而传给数据库服务器以执行数据库命令。如果Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点),就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击。
xss攻击:全称跨站脚本攻击(Cross Site Scripting),是一种网络安全攻击方式。攻击者通过在网页中注入恶意脚本代码,当用户浏览该网页时,恶意脚本代码会被执行,从而达到攻击的目的。这种攻击方式主要针对的是用户层面的攻击,通过注入的恶意脚本,攻击者可以窃取用户的敏感信息、破坏页面结构、进行恶意重定向等。XSS攻击的原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其他用户浏览该网站时,该段HTML代码会自动执行,从而达到攻击的目的。攻击者可以通过在留言、评论、博客、日志等能够向web server输入内容的地方插入攻击代码,或者通过其他手段(如网站搜索栏注入、广告注入等)来执行XSS攻击。

三、实验过程

1.安装、启停Apache,编写一个含有表单的HTML

首先下载好eclipse,在上面安装启动Apache tomcat8.0,如下图:
在这里插入图片描述
然后是编写一个含有表单的HTML,在eclipse中新建一个Dynamic Web Project,然后代码如下:
在这里插入图片描述
运行后如下图效果:
在这里插入图片描述

2.编写JavaScript验证用户名、密码的规则,利用回显用户名注入HTML及JavaScript

添加的javascript代码部分如下图:
在这里插入图片描述
其中,如果输入的用户是root并且密码是20212405,则会出现欢迎root的界面,如果不是则会出现hack阻止提交表单:
在这里插入图片描述
在这里插入图片描述
利用回显用户名注入HTML及JavaScript,首先是注入HTML:
在用户名中输入

HTML注入


在这里插入图片描述
然后是注入javascript:
在用户名中输入:
在这里插入图片描述

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

安装和启动MySQL,这里我用的是xampp,然后建立数据库,以下是库中的表:在这里插入图片描述
在这里插入图片描述然后向表中导入数据,用SQL语句执行即可主要代码如下:CREATE TABLE news (
newstitle varchar(255) NOT NULL,
newstext varchar(255) NOT NULL,
creater varchar(255) NOT NULL,
creatime varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE user (
uname varchar(255) NOT NULL,
upwd varchar(255) NOT NULL,
ucdate varchar(255) NOT NULL,
urole varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

在这里插入图片描述

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

连接数据库的部分如下:
在这里插入图片描述
用户认证部分如下:
在这里插入图片描述
然后展示一下正确和错误的登录界面:
正确的登录后会显示新闻操作界面:
在这里插入图片描述
错误的:
在这里插入图片描述
接下来是用户增添的示例增添之前如上图展示的已有用户表,然后在界面添加用户tuzi,密码777:
在这里插入图片描述
回到数据库查看,发现添加成功:
在这里插入图片描述
然后展示查询功能:
在这里插入图片描述
以下是查询功能的部分主要代码:
在这里插入图片描述
在这里插入图片描述

5.SQL注入,XSS攻击测试

首先进行SQL注入:在用户名输入’ or 1=1#,密码任意输入即可,然后即可登陆成功:
在这里插入图片描述
接下来是xss攻击,通过前文展示的添加用户功能来添加一个用户:,然后查看用户表发现添加成功:
在这里插入图片描述
然后在查询此用户时就会出现以下界面:
在这里插入图片描述
在这里插入图片描述

6.安装Pikachu平台,并完成SQL注入、XSS、CSRF攻击

首先是SQL注入,根据由于是字符型注入,我们可以猜测sql语句的大概格式

select 字段1,字段2 from 表名 where username = ‘users’;
构造闭合,输入20212328cyf’ or 1=1#

select 字段1,字段2 from 表名 where username = ‘20212328cyf’ or 1=1#';

常见的sql语句查询一般是select…from表名 where username = ‘…’,那么可以在username后面构造永真式:or 1=1(参考ppt上的内容)所以我们可以输入202124Q5!’ or 1=1#,然后即可查出所有人的信息:
在这里插入图片描述
然后是XSS攻击,这里是存储型XSS,当用户访问时页面会将存在数据库的攻击内容查询结果显示到页面上,在留言板输入:,然后提交,显示攻击成功:
在这里插入图片描述
在这里插入图片描述
接下来是CSRF攻击,按照提示,使用用户名为kobe,密码为123456登录:
在这里插入图片描述
然后对其进行一些信息修改,并进行监听:
在这里插入图片描述
右侧的报文显示监听到了修改的信息,并且显示URL的请求方式是get:http://pikachu:8848/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=10001&add=20000&email=30000&submit=submit
那么,想要修改信息也可以在链接中直接修改:
http://pikachu:8848/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=llin&add=llin&email=llin&submit=submit,把这个url放在浏览器上,显示信息也被修改了:
在这里插入图片描述
至此,本实验结束。

五、遇到的问题

本次实验有相当一部分是在上个学期的网编课程就接触过的内容,所以实验原理的理解有一定基础,操作起来就没有什么大问题(大问题都在上学期踩过雷了哈哈),在后面搭建pikachu平台的时候不太顺利,上一次就没安装成功,这次重安也遇到了很多问题,于是上网找教程,改配置文件,改端口分配等很多琐碎的问题都要解决,最后才配置好了环境得以实验,需要耐心吧。

六、学习心得

八次实验终于结束了!完结撒花。做这些实验真的很不容易,尤其是最后一次实验有很多网编内容让我居然有一些熟悉感,这一次的实验让我对上学期的学习内容又加深了理解,上学期的课设中涉及到了防xss攻击,这次的实验内容是xss攻击和其他很多攻击方式,挨个都体会了一遍也加深了理解,我会记住这八次实验带来的教训和成长,为这门课程画上圆满的句号。

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值