热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20155317王新玮《网络对抗技术》实验8WEB基础实践

一、实验准备

1.0 实验目标和内容

  1. Web前端HTML。能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
  2. Web前端javascipt。理解Javascript的基本功能,理解DOM。编写Javascript验证用户名、密码的规则。
  3. Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
  4. Web后端:编写PHP网页,连接数据库,进行用户认证
  5. 最简单的SQL注入,XSS攻击测试

2.0 实验问题的回答

(1)什么是表单

表单就是网页上的表格,可以负责数据采集功能。例如输入文本,密码,进行选择等等。

(2)浏览器可以解析运行什么语言

  • 超文本标记语言:HTML
  • 可扩展标记语言:XML
  • 脚本语言:ASP、PHP、Script、Javascript、Vbscript、Perl、Python、ColdFusion、Java、JSP等

(3)WebServer支持哪些动态语言

  • ASP语言
  • PHP语言
  • JSP语言

二、Web前端HTML

首先开启apache,同上个实验一样,西安关闭80端口,再开启。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

可以看到我们用到的是80端口,接着对其apache进行测试,是否可用

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

输入localhost:80。进入到了上节课我们用到的网页中。

接下来进入我们的编辑目录 /var/www/html

新建一个wangxinwei2.html的文件,并对其进行编辑:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

写一个简单的网页,其中有可输入文字的框和可选框

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

在火狐浏览器中输入localhost:80/wangxinwei2.html,打开该网页。进入到了我刚编写的网页中。

我一共实现了三种html的表单动能,文本框的填写,密码的填写,选项的选择。

对于POST与GET的设定,这里我先尝试的是,POST。POST用以向服务器发送数据,按照放在form中的数据体,传到action所指向URL。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

编写一个PHP,其中的代码含义为,将网页已经写好的元素 username 和 password,传到php的页面中并显示出来。

然后在html中的form方法里,action="login.php"

测试:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

成功

三、Web后端:MySQL基础

实验步骤为:

  • 启动数据库
  • 创建一个新的数据库
  • 建立一张新表 wxw,有username和password两个字段,最长各20个字符
  • 添加记录
  • 数据库表

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

使用命令/etc/init.d/mysql start打开mysql服务

输入mysql -u root -p,这里要注意“-”的输入

根据提示输入密码,password,进入MySQL:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

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 '');

20155317王新玮《网络对抗技术》实验8 WEB基础实践

输入use 库表名使用刚建的库表。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

输入insert into users(userid,username,password,enabled) values(ID号,'用户id',password("用户密码"),"TRUE");添加新用户。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

输入show databases; ,查看新建库表的信息

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

四、Web后端:编写PHP网页

前端网页直接用上面编写好的表单,用POST推上去的。名称为haha.html

接下来我们需要做的就是编写一个后台连接到数据库,实现从数据库中调用数据,来验证用户输入的用户名和密码是否为已注册的。

我编写的PHP代码为:

"username"]);
$password=($_POST["password"]);

echo $username;
$query_str="SELECT * FROM users WHERE username='{$username}' and password=password('{$password}');";
$mysqli = new mysqli("127.0.0.1", "root", "20155317", "5317WXW");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
echo "connection ok!";
/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
if ($result->num_rows > 0 ){
echo "
Wellcome login Mr/Mrs:{$uname}
"; } else { echo "
login failed!!!!
" ; } /* free result set */ $result->close(); } $mysqli->close(); ?>

编辑好前端wangxinwei2.html和后台之后,用火狐浏览器打开前端,并输入用户名和密码:

先输入一个错误的:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

很显然登录失败:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

 

输入正确的用户名和密码之后,成功登录:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

五、简单的SQL注入

简单的测试

SQL注入,就是把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

做一个简单的SQL注入,就是简单地将命令输入用户名框。

输入' or 1=1#

根据我们编写的php代码,SQL语句就会变为:

select * from users where username='' or 1=1#' and password=password(XXX);

永远为真,就可以直接登录。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

登录成功

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

进一步,通过SQL注入将用户名和密码保存在数据库中

用于插入的用户名为"2222",密码为 20155317

所以用到的语句就是:

';insert into users(username,password) values('22222',password("5317"));#

在用户名框中输入。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

我们查看一下数据库:
20155317王新玮《网络对抗技术》实验8 WEB基础实践

注入成功

然后成功登录了

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

 

 

 

六、XSS攻击测试

跨站脚本攻击是新型的“缓冲区溢出攻击“

就是将恶意代码例如jsp代码植入到提供给其它用户使用的页面中。

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

这是我们要用到的代码,代码的功能就是直接读取/var/www/html目录下的图片

然后我们将测试的图片拷到html目录下

在火狐浏览器中测试:

20155317王新玮《网络对抗技术》实验8 WEB基础实践

 

实验成功

七、实验感想

本次的实验我认为有一定的难度,上学期在刘念老师的课中练习过网站的编写,但是感觉开始的时候遗忘度还是比较大的,不过最终也完成了实验,懂得了一些网站制作时候的漏洞,也是收获颇多!


推荐阅读
  • 本文提供了处理WordPress网站中出现过多重定向问题的方法,包括检查DNS配置、安装SSL证书以及解决数据库连接错误等步骤。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 利用无代码平台实现高效业务应用开发
    随着市场环境的变化加速,全球企业都在探索更为敏捷的应用开发模式,以便快速响应新兴的商业机遇。然而,传统的软件开发方式不仅成本高昂,而且耗时较长,这往往导致IT与业务部门之间的合作障碍,进而影响项目的成功。本文将探讨如何通过无代码开发平台解决这些问题。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
author-avatar
童式恃
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有