20154319 Exp 8 Web基础

 

一、实验要求

1.本实践的具体要求有:

(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分)

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

二、实验体会

(一)试验后问题回答 

1)什么是表单。

表单在网页中主要负责数据采集功能。

一个表单有三个基本组成部分:

表单标签:用于申明表单,定义采集数据的范围,也就是<form>和</form>里面包含的数据将被提交到服务器或者电子邮件里。这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。语法为:<FORM ACTION="URL" METHOD="GET|POST" ENCTYPE="MIME" TARGET="...">. . .</FORM> 

表单域:表单域包含了文本框、多行文本框、密码框、隐藏域、复选框、单选框和下拉选择框等,用于采集用户的输入或选择的数据。

表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。代码格式为:<input type="submit" name="..." value="...">,其中type="submit"定义提交按钮;name属性定义提交按钮的名称;value属性定义按钮的显示文字。

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

超文本标记语言:HTML;

可扩展标记语言:XML;

脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。

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

主要有ASP,PHP,JAVASCRIPPT,JAVA,CGI等。

(二)实验体会

这次实验涉及到之前根本没有学过的web方面的编程,本来打算在网上找例子的,后来发现就做一个建议的网站还是可以的,学了一些最浅显的知识就用来,做了一个最简易的版本的。但是只是做了个简单的网页,界面还不够友好,功能还不够完善,需要通过以后的学习慢慢加油吧,但是感觉做网页还是比较有趣的。实验还涉及到了一些数据库的知识,虽然学了一些数据库,但是发现直接能在MySQL中看到表还是挺不错的。

三、实验过程

(一)Web前端HTML

1.使用命令 netstat -aptn 查看端口占用情况,在这里apach2占用端口为8082

2.测试一下是否可以正常使用apache服务,在kali浏览器上输入 localhost:8082  ,可以正常打开网页,但是跳转的居然是QQ邮箱?

3.输入命令,新建一个4319.html文件,并用vim编写一个含有表单的html(直接找到文件夹新建也行)

cd /var/www/html    打开文件夹
mkdir 19  新建一个19文件夹
cd 19    打开19文件夹
touch 4319.html   新建一个名称为19的html文件
ls 查看是否新建成功
leafpad 4319.html 打开编写4319.html

内容如下,是一个含有表单的html文件

 4.测试一下刚刚写的网页,在kali浏览器中输入 localhost:8082/19/19.html  打开网页如下

随便输入一下用户名和密码进行登录,会弹出not found网页,但是由于用了get方法,在地址栏的地址后面会看到之前随意输入的用户名和密码(后面有post的)

http://localhost:8082/19/html_form_action.php?user=aaaa&password=aaaa

(二)Web前端javascipt

1.自己编写了JavaScript验证用户名、密码的规则。

 用户名长度不能小于4位,密码不能为空

2.打开html界面,输入不合规则的用户名或密码,进行测试。

a.控制用户名不能小于4位

b.控制密码不能为空

(三)Web后端

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

1.输入命令 /etc/init.d/mysql start  启动sql服务

2.输入命令 mysql -u root -p  (直接复制粘贴可能进不去,尽量手动输入吧)

进去之后提示输入密码,默认密码为p@ssw0rd,(密码不显示),然后进入MySQL

3.输入命令 show databases;  查看基本信息(注意分号)

 

4.修改一下数据库的默认密码

use mysql;     选择mysql数据库
select user, password, host from user;   
UPDATE user SET password=PASSWORD("新密码") WHERE user='root';  修改密码
flush privileges;    更新权限

(忘记加分号就会出现上面这样子了)

 

(更新密码为4319)

(更新权限后可以退出)

5.在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 '');

(注意这里的单引号,有两种形式)

建立的库和表名称均为4319

6.向表中添加数据

use 表名
insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");    添加命令insert

添加第一条用户,名称154319,密码为4319

7.修改表中数据

 update user set password=password("154319") where userid=1; 更新一下id=1的密码为154319

8.删除表中数据

(先新增一条数据userid=2)

delete from users where userid=2;   

删除userid=2的数据

然后用 select * from users 查看表

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

 1.在/var/www/html/19目录下新建一个login.php,编写php,实现对数据库的连接

在html文件中用login.php

 

2.浏览器中输入localhost:8082/19/login.html,访问登陆页面,输入刚刚存在数据库里的用户名 密码进行登录

 

 

 

 当密码输入错误的时候:

(五)最简单的SQL注入,XSS攻击测试

 1.永真式
用户名输入' or 1=1#,密码随意,则SQL查询语句为

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

因为是永真,故可以成功登录

 

2.SQL攻击

用户名输入: ';insert into users(userid,username,password,enabled) values(111,'1111',password("1111"),"TRUE");# 
密码随意,添加用户名和密码都设置为1111

退出后再使用1111登录,显示成功

 

3.XSS攻击
上网查了一下那么什么是XSS:
Cross Site Scripting(跨站脚本攻击),它允许恶意web用户将代码植入到提供给其它用户使用的页面中,此次实验中“代码”可以认为是脚本。通过插入恶意脚本,实现对用户游览器的控制。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

我打算插入一个图片在登录成功的界面上,在输入用户名的时,输入为命令 <img src="1.jpg" /> 

 

 

 

 

posted on 2018-05-17 14:58  154319张武璐  阅读(234)  评论(0编辑  收藏  举报

导航