20155331《网路对抗》Exp8 WEB基础实践

20155331《网路对抗》Exp8 WEB基础实践

基础问题回答

什么是表单

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签,这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。表单域,包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮,包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作

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

浏览器可以解析运行HTML、XML,javascript等脚本语言,对于JS脚本,会调用JS脚本引擎来处理

WebServer支持哪些动态语言

比较常用的有ASP语言,PHP语言和JSP语言,比如JavaScript、JSP、PHP等。

实验体会

这次的实验感觉比以前的都要困难的多,特别是我自己的编程能力也不是特别的好,代码变成了一个很大的问题。不过,虽然说实验过程比较的辛苦,但结果而言还是比较满意的,辛苦很长时间做出来了预期的效果,还是很有成就感的。

实验过程

1.Web前端HTML

输入命令sudo apt-get install apache2进行安装

输入命令apachectl start启动apahce

打开失败

于是查看了端口占用的情况,并且杀死了端口,然后再次尝试打开。

打开成功。

浏览器中输入localhost:80,可以看见我们的Apache是在正常工作的。

使用cd /var/www/html进入Apache目录下,新建一个简单的含有表单的html文件

在浏览器打开:

2.Web前端:javascipt

在原有5331.html基础上,可以添加一段JavaScript代码,以完成对用户是否填写邮箱和密码的判断。l如下:

3.MySQL基础

输入/etc/init.d/mysql start开启MySQL服务:

输入mysql -u root -p使用root权限进入,

用show databases;查看基本信息:

现在来修改密码

输入以下命令修改密码

use mysql;

select user, password, host from user;

UPDATE user SET password=PASSWORD("20155331") WHERE user='root';

flush privileges;

quit

然后重新登录mysql

创建数据库和新表:

create database dzdd;

use dzdd;

使用create table dzddtable;建立数据表;使用show tables;查看存在的数据表:
create table dzddtable (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5))

在表中添加内容:
insert into dzddtable values('dzdd','5331');

有了数据表就往里面写数据,再查一下看存进去了没有。

Web后端:PHP网页

PHP是一种通用开源脚本语言。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

新建一个PHP测试文件vi /var/www/html/dzdd.php测试文件

从浏览器中直接打开localhost:80/dzdd.php,

可以看见测试成功

PHP+MySQL实现登录网页编写

在/var/www/html文件夹下输入vim dzdd.html,编写登录网页

将之前编的登录网页的5331.html代码中form的action属性由#改成dzdd.php,即登录后跳转到HGY.php,再在浏览器中输入localhost:80/5331.html访问自己的登录页面

SQL注入

在用户名输入框中输入' or 1=1#,密码输什么都会成功登陆,原因是这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,所以这个条件肯定恒成立,所以能够成功登陆:

先在PHP中改语句if ($result = $mysqli->query($query_str))为if ($result = $mysqli->multi_query($query_str)),然后在用户名框中输入';insert into users valu('7','15331','20155331',"TRUE");#在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了(登录前将if ($result = $mysqli->query($query_str))语句改回来)。

posted @ 2018-05-22 23:05  20155331  阅读(95)  评论(0编辑  收藏  举报