20155235 《网络攻防》 实验八 Web基础

20155235 《网络攻防》 实验八 Web基础

实验内容

  1. Web前端HTML(0.5分)
    能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。

  2. Web前端javascipt(0.5分)
    理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。

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

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

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

功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面。

实验一 Web前端HTML

Apache环境配置

  • apache是kali下的web服务器,通过访问ip地址+端口号+文件名称打开对应的网页。
  • 输入命令vi /etc/apache2/ports.conf更改apache2的监听端口号,利用service apache2 start打开apache2;
  • 并使用netstat -aptn查看端口号,确认apache正确开启
  • 然后利用kali自带的浏览器访问127.0.0.1:5235(本机地址+设置的监听端口),可验证apache已经开启
    o_1.PNG
    o_222.png

    实验二 编写一个含有表单的HTML

  • 在apache2工作目录下编写一个HTML,利用apache2进行发布
  • 进入apache2的工作目录/var/www/html,创建并编写login_test.html文件
  • 打开浏览器,输入http://127.0.0.1:5235/login_test.html即可打开
    o_2.png
  • 在网页上输入用户名密码,提交表单,跳转至NOT FOUND提示网页,因为只有前端代码
    o_3.png

  • 继续编写前端代码,规定规则
    o_4.png
  • 测试规则:
    o_5.png
    o_6.png
    测试成功

实验三 Web后端、MySQL基础

  • 安装 apt-get install mysql
  • 启动mysql /etc/init.d/mysql start
  • 输入 mysql -u root -p ,并根据提示输入密码,默认密码为p@ssw0rd进入MySQL
  • 创建一个数据库TestLogin: CREATE SCHEMA TestLogin
  • 使用创建的数据库 USE TestLogin
  • 创建数据库表:
    create table `users`(
    `userid` int not null comment '',
    `username` varchar(45) null comment '',
    `password` varchar(256) null comment '',
    `enabled` varchar(5) null comment '',
    primary key (`userid`) comment '');
  • 输入 insert into users(userid,username,password,enabled) values( 1,'20155235',password("20155235"),"TRUE"); 添加信息
    o_2333.png
  • 可以使用命令show databases;可以查看基本信息
    o_7.png
  • 可以通过如下方式更改密码:
    输入 use mysql ;,选择mysql数据库
    输入 select user, password, host from user; ,mysql库中的user表中存储着用户名、密码与权限
    输入 UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
    输入 flush privileges; ,更新权限
    输入 quit 退出
    o_8.png
  • 重新登录就可以发现密码修改成功
  • 在Mysql中建库建表,输入如下
    CREATE SCHEMA 库表的名称;
    CREATE TABLE 库表的名称.users (
    userid INT NOT NULL COMMENT '',
    username VARCHAR(45) NULL COMMENT '',
    password VARCHAR(256) NULL COMMENT '',
    enabled VARCHAR(5) NULL COMMENT '',
    PRIMARY KEY (userid) COMMENT '');
    o_9.png
  • 向表中添加用户
    o_10.png
  • 现在再查看信息就可以看到新建表:
    o_11.png

    php+mysql编写网页

  • /var/www/html 文件夹下输入 vim login.html ,编写登录网页
    o_12.png
  • 输入 vim login.php ,通过php实现对数据库的连接
    o_13.png
  • 在浏览器中输入localhost:5235/login.html访问自己的登陆页面
    o_14.png
  • 在登录页面中输入数据库中存有的用户名和密码并点击提交进行用户认证登录成功,输入数据库中没有的就会认证失败
    o_15.png
    o_16.png

实验四 XSS攻击

  • XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
  • 进行一个简单的测试,在用户名输入框中输入 <img src="20155235.jpg" />20155235</a> 读取 /var/www/html 目录下的图片:
    o_17.png
    o_23.png

问题

  1. 什么是表单

    表单:可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。

  2. 浏览器可以解析运行什么语言。

    HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等。

  3. WebServer支持哪些动态语言

    JavaScript、ASP、PHP、Ruby等。

实验心得

实验八我做的是真心累啊,因为我所有的实验报告都是根据前面的报告改的,就导致我粘贴到博客园时,把我做了一半,一般是实验六的博客贴了过去,对此我表示特别抱歉,给老师道个歉,比心心。虽然用了我很喜欢的人的图片,但是我依然要控诉我的虚拟机,又换了好几个!!!才做出来!!!!

转载于:https://www.cnblogs.com/WYjingheng/p/9075021.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python每天1道面试题(3)--字符串组合

""" 题目3&#xff1a;输入一个字符串&#xff0c;输出该字符串中字符的所有组合。举个例子&#xff0c;如果输入abc&#xff0c;它的组合有a、b、c、ab、ac、bc、abc。解题思路: 先用列举法,举例出组合元素长度分别是1,2,..,len(str)时的具体元素, 然后发现当数…

【每周一图】蜂鸟

摄影/祈澈姑娘小花园偶遇的一只蜂鸟转载于:https://www.cnblogs.com/wangting888/p/9702088.html

API网关如何实现对服务下线实时感知

上篇文章《Eureka 缓存机制》介绍了Eureka的缓存机制&#xff0c;相信大家对Eureka 有了进一步的了解&#xff0c;本文将详细介绍API网关如何实现服务下线的实时感知。 一、前言 在基于云的微服务应用中&#xff0c;服务实例的网络位置都是动态分配的。而且由于自动伸缩、故障和…

TCP为什么要三次握手和四次挥手

http://www.jellythink.com/archives/705 简析TCP的三次握手与四次分手 https://zhuanlan.zhihu.com/p/24001696 计算机网络面试题 https://www.zhihu.com/question/36930631 TCP四次分手中&#xff0c;主动关闭方最后为什么要等待2MSL之后才关闭连接&#xff1f; http://ww…

Java处理文件BOM头的方式推荐

背景&#xff1a; java普通的文件读取方式对于bom是无法正常识别的。 使用普通的InputStreamReader&#xff0c;如果采用的编码正确&#xff0c;那么可以获得正确的字符&#xff0c;但bom仍然附带在结果中&#xff0c;很容易导致数据处理出错。另外&#xff0c;对于存在BOM头的…

封装svg组件

如何封装svg图标组件 封装svg图标组件的方法有很多种&#xff0c;如果只是单纯的想使用svg图标&#xff0c;可以将svg导出fonts字体图标使用&#xff0c;但这样做会失去svg原有的样式与尺寸&#xff0c;也可以当成img图片或者背景引入&#xff0c;但这样做非常繁琐。 最近项目中…

RabbitMQ 延迟队列,消息延迟推送

应用场景 目前常见的应用软件都有消息的延迟推送的影子&#xff0c;应用也极为广泛&#xff0c;例如&#xff1a; 淘宝七天自动确认收货。在我们签收商品后&#xff0c;物流系统会在七天后延时发送一个消息给支付系统&#xff0c;通知支付系统将款打给商家&#xff0c;这个过程…

windows Navicat Premium连接oracle

需要下载并指定Instant Client 下载地址&#xff1a;在oracle官网搜索Instant Client Downloads选择自己需要的客户端 //说明 //Navicat 版本 9 或以上捆绑了 instant client&#xff0c;但是捆绑的用不了&#xff0c;捆绑的10.2。因此下载高版本替换之 //版本有要求&#xff0…

关于arraylist的扩容机制

ArrayList会自动改变size的长度&#xff1a; 首先&#xff0c;ArrayList定义了一个私有的未被序列化的数组elementData&#xff0c;用来存储ArrayList的对象列表&#xff08;注意只定义未初始&#xff09;&#xff1a;private transient Object[] elementData;   其次&am…

不同级别UI设计师的区别有哪些?

不同等级的UI设计师在工作内容以及基本的薪资待遇方面也是有区别的&#xff0c;很多在UI培训学校学习的小伙伴们并不知道各个等级的UI设计师工作内容有什么差别&#xff0c;那么合肥学码思小编就给大家总结一下这些区别分别表现在哪些方面。 一、初级UI设计师 初级UI设计师的主…

Linux命令行参数前加--,-和不加杠

参数前“-”的表明后面的参数是字符形式。参数前“--”的则表明后面的参数是单词形式。参数前有横的是System V风格。 参数前没有横的是BSD风格。 转载于:https://www.cnblogs.com/YYRise/p/9090476.html

反射笔记-----------------------------

1.反射基本概念&#xff1a; 01.定义&#xff1a; 反射是指在程序运行期间&#xff0c;能够观察和修改类或者类的对象的属性和行为的特性&#xff01; 02.作用&#xff1a; 001.在运行期间获取类的修饰符&#xff0c;包名&#xff0c;类名&#xff0c;实现的接口&#xff0c;继…

kubernetes 集群部署

kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152.113JiaoJiao_Centos7-3(152.114) 192.168.152.114已开通 4C8G80G 集群规划 部署方式 环境准备&#xff1a;基于主机名称通信&#xff0c;时间同步&#xff0c;关…

PHP学习笔记--抽象类和抽象方法的应用

抽象类** 什么是抽象方法&#xff1f;** 定义&#xff1a;如果一个类中的方法&#xff0c;没有方法体的方法就是抽象方法(就是一个方法没有使用{}而直接使用分号结束)* * abstract function test(); //抽象方法* * function test(){ //有方法体…

wordpress 显示数学公式 (MathJax-LaTeX)

blog 不放一堆数学公式怎么能显得高大上&#xff0c;所以 MathJax-LaTeX 也是必装的插件之一了。 一、安装 MathJax-LaTex 插件 直接在 wordpress 插件中&#xff0c;搜索并安装 MathJax-LaTeX 二、安装本地 MathJax 服务 不过由默认的 MathJax cdn 服务经常被墙&#xff0c;所…

长春理工大学第十四届程序设计竞赛(重现赛)F.Successione di Fixoracci

链接&#xff1a;https://ac.nowcoder.com/acm/contest/912/F 题意&#xff1a; 动态规划(Dynamic programming&#xff0c;简称dp)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。例如&#xff0c;假设小x一步能爬1层或2层台阶&#xff0c;求小x爬n层台阶…

ConstraintLayout

ConstraintLayout使用笔记 具体使用参考&#xff1a;http://blog.csdn.net/guolin_blog/article/details/53122387 ConstraintLayout 好处还是很明显&#xff0c;确实可以减少嵌套。性能对比参阅&#xff1a;http://www.cnblogs.com/liujingg/p/7161319.html 简单嵌套Constrain…

css权重

权重大小 内嵌权重为1000 <p style"color: yellow;">ALEX</p> id选择器的权重为100&#xff0c;类选择器的权重为10&#xff0c;标签选择器的权重为1. /*1 1 1*/ #box1 .wrap2 p{color: red; }当权重一样的时候&#xff0c;是以后设置的属性为准&#xf…

手机两列布局,正方形

手机两列布局&#xff0c;正方形。 直接贴出调试网站的结果&#xff0c;阅读效果还不错。 转载于:https://www.cnblogs.com/blogzhang/p/11002428.html

python(5)- 基础数据类型

一 int 数字类型 #abs(x)      返回数字的绝对值&#xff0c;如abs(-10) 返回 10 # ceil(x)    返回数字的上入整数&#xff0c;如math.ceil(4.1) 返回 5 # cmp(x, y)    如果 x < y 返回 -1, 如果 x y 返回 0, 如果 x > y 返回 1 # exp(x)…