实践目标

  • Web前端HTML

    能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。

  • Web前端javascipt

    理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。

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

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

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


实验后回答问题

什么是表单

  • 表单:可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单,另一部分是脚本或应用程序用于处理提交的信息,搜集表单数据。表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中,种类有注册表、留言薄、站点导航条、搜索引擎等。

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

  • 超文本标记语言:HTML

  • 可扩展标记语言:XML

    脚本语言

  • ASP全名Active Server Pages,是一个WEB服务器端的开发环境,采用脚本语言Java script作为自己的开发语言。

  • PHP是一种跨平台的服务器端的嵌入式脚本语言,借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。

  • JSP是Sun公司推出的新一代网站开发语言,JSP(Java Server Page)JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。

WebServer支持哪些动态语言

  • 常用的有ASP语言,PHP语言和JSP语言

实验总结与体会

  • 实验时候各种手抖,输错一个符号或漏一个字符就出现错误,一个实验做好多遍,心累啊。html网页是与用户交互的界面,需要做到界面友好美观,同时也要注意每个句子的语法,特别是按钮提交到后台的语句action,javascript实现与提交到后台连接操作,php实现后端数据库操作。本次实验实现简单的web前端与后台的交互操作,并对数据库设计的漏洞进行简单的攻击,有利于更好的学习数据库。

实践过程记录

Web前端HTML

安装、启停Apache

  • 设置apache监听端口为80,并开启

  • 浏览器上输入localhost:80,页面跳转到上次克隆的网页

一个简单的含有表单的HTML

  • 在apache工作目录cd /var/www/html下新建一个20145329.html文件,编写一个html网页

  • 它在win8本机浏览器上本来是这个样子的

  • 但是到了kali浏览器上(打开浏览器访问:localhost:8088/20145329.html,成功出现如下界面)不识别背景图片路径以及编码方式不同,就变成了这个样子

  • 可以通过alt->view->Text Encoding->Unicode修改编码方式,但是为了方便还是使用英文吧

  • 随意输入字符到用户名和密码,网页没有连接后台,所以login后出现"Not Found"

  • JavaScript


<html>
<head>
<meta charset ="UTF-8">
<script type="text/javascript">
(function disp_alert()
{ var sUserName = document.form.username.value ;
var sPassword = document.form.password.value ;
if ((sUserName =="") || (sUserName=="Your name")){
alert("Please input the username!");
return false ;
} if ((sPassword =="") || (sPassword=="Your password")){
alert("Please input the password!");
return false ;
}
}
</script>
</head>
<body>
<form name='form' class="form" method='get' action='login.php' >
<input type="text" placeholder="Username" name='username'>
<input type="password" placeholder="Password" name='password'>
<button type="submit" onclick="disp_alert()" value="submit" />submit</button>
</body>
</html>
  • 验证用户名、密码的规则

Web后端

php测试

  • 代码

    ";
    ?>

    20145329

  • 在浏览器中输入localhost:80/5329test.php,显示

mysql

  • 安装、启动MySQL:/etc/init.d/mysql start,并以root身份登录:mysql -u root -p

  • 显示各个数据库名称,并显示mysql库中已有的用户名、密码与权限



  • 修改密码

  • 更新权限

  • exit退出当前用户并重新使用新密码进入

  • 创建用户

  • 建库

  • 建表

  • 往新建的库里面插入数据

Web后端

PHP网页

  • 在/var/www/html文件夹下输入leafpad login.html,编写登录网页,在同样的目录下输入leafpad login.php,通过php连接数据库

  • 连接数据库,括号里面依次为主机、mysql用户、密码、数据库名称

  • 进行用户认证:在浏览器中输入localhost:80/login.html访问登陆页面

  • 登录失败,请教了棒棒哒昊阳同学,是因为新建的表单里面我的密码是经过hash的,而我的php代码里面取得我输入的密码提交到数据库对比的时候是没有经过hash的,所以输入对的密码也会比对失败,不能登录成功,修改php代码,把输入密码框里的密码做一个hash处理就可以比对成功修改部位如下:

  • 输入正确用户名和密码,登录成功

  • 用户名和密码错误,登录失败

  • 给登录成功一个welcome的页面,在/var/www/html目录下新建一个welcome.php,代码参照LTC同学的,在login.php就加入下列代码

  • 登录成功后跳转到如下界面

最简单的SQL注入

  • SQL注入的产生通常是将用户输入的字符串,当成了 “sql语句” 来执行,比如在用户名输入一个永真式:' or 1=1#,一定能登陆成功,密码随便输入,合成SQL查询语句为select * from users where username='' or 1=1#' and password=md5('')

    等价于一下两句sql语句:

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

    select * from users where username='' or 1=1

  • 用户名中输入' or 1=1#永真式,密码随意

  • 登陆成功

  • 通过SQL注入将用户名和密码保存在数据库中'insert into users(userid,username,password,enabled) values(2,'29',password("123456"),"TRUE");#

    翻译过来就是SELECT * FROM users WHERE username='';insert into users (userid,username,password,enabled) values(2,'29',password("123456"),"TRUE"");

    ($result = $mysqli->query($query_str))改为$result = $mysqli->multi_query($query_str)实现可以执行多条SQL语句

  • 用户名输入sql语句,密码为空,登录显示

  • 数据库中查询有新的语句加入

  • 返回登陆界面,使用刚刚插入的用户名和密码登录成功

XSS攻击测试

  • 登录界面用户名输入

  • 登录出现下图

20145329 《网络对抗技术》Web基础的更多相关文章

  1. 20145326蔡馨熤《网络对抗》—— Web基础

    20145326蔡馨熤<网络对抗>—— Web基础 1.实验后回答问题 (1)什么是表单. 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据 ...

  2. 20155305《网络对抗》Web基础

    20155305<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...

  3. 20155307实验八 《网络对抗》 Web基础

    20155307实验八 <网络对抗> Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用 ...

  4. 20155311《网络对抗》Web基础

    20155311<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...

  5. 20145216史婧瑶《网络对抗》Web基础

    20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...

  6. 20145227鄢曼君《网络对抗》Web基础

    20145227鄢曼君<网络对抗>Web基础 实验内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建 ...

  7. 20145312袁心《网络对抗》Web基础实践

    20145312袁心<网络对抗>Web基础实践 问题回答 1.什么是表单: 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程 ...

  8. 20145321 《网络对抗》 Web基础

    20145321 <网络对抗> Web基础 基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签——这里面包含了处理表单数据所用CGI程序 ...

  9. 20145330 《网络对抗》 Web基础

    20145330 <网络对抗> Web基础 1.实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创 ...

  10. 20144303石宇森 《网络对抗》 WEB基础实践

    20144303石宇森 <网络对抗> WEB基础实践 实验后回答问题 一.什么是表单 表单是一个包含表单元素的区域.用form来定义. HTML是静态显示网页的,无法跟服务器进行交互,所以 ...

随机推荐

  1. linux:echo命令示例

    echo命令:用于字符串的输出  $echo string 1.打印普通字符串 $echo "hello kumata" hello kumata #这里的双引号完全可以省略,以下 ...

  2. cocoapods卸载与安装

    引用自:https://www.aliyun.com/jiaocheng/389907.html 一.首先卸载pod which pod 得到pod的路径 sudo rm -rf <pod的路径 ...

  3. cross browse compatible

    不过我之前用过一个Chrome的插件叫浏览器兼容性检测工具,可以在内网测试,会自动监测网页的设计是否满足对应浏览器及版本的规范,不满足的话就会详细提示出来,不过有些过于专业性了,更适合开发人员查看,测 ...

  4. php Only variables can be passed by reference

    最近做项目,发现了一个报错  Only variables can be passed by reference,  意思是"只有变量能通过'引用'" 就是在代码中 使用了一个方法 ...

  5. Windows server 2016 安装及ORACLE 12C 安装

    首先创建虚拟机,选择windows server 2016 启动虚拟机,进入安装界面,语言默认中文,选择下一步 选择标准安装(桌面) 选择接受条款 选择自定义安装 进行分区,如下图所示 进行安装 设定 ...

  6. JS "eval智能" 工厂模式

    <script> var Shop = function () { this.name = function () { document.write("商店的名字 <br/ ...

  7. git clone远程branch和tag

    1.查看远程分支 git branch -r 2.测试git clone romete,只是clone远程remote的master,不会clone其他的目录 -------------------- ...

  8. vue.js常用的

    <input v-model.number="age" type="number"> //自动将用户的输入值转为数值类型 <input v-m ...

  9. SVN出现xcrun: error: invalid active developer path(Mac)

    Mac升级了系统,配置PHPStorm的SVN,出现如下错误: 具体提示的内容是:xcrun: error: invalid active developer path (/Library/Devel ...

  10. MVC中的传参并在View中获取

    首先action跳转的模式有如下: redirecttoaction("index");//一个参数时在本controller下,不传入参数. redirecttoaction(a ...