20154327 EXP8 Web基础

基础问题回答

(1)什么是表单?

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

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

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

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

  • 目前,最常用的三种动态网页语言有ASP(ActiveServerPages),JSP(JavaServerPages),PHP(HypertextPreprocessor)。

实验过程

Web前端HTML

kali:192.168.152.134

1.环境配置

  • 检查80端口有没有被占用:netstat -aptn | grep 80
    杀死占用的进程:kill 2380
    打开apache2:service apache2 start
  • 检测apache有没有正常工作
  • 这里为了区分,我又将自己的端口号改为了4327.

2.编写网页

  • 进入apache2的存储html文件的文件夹/var/www/html修改相应html文件,设计自身表单
  • 老师上课提到了QQ的登陆界面,我便去网上找了下QQ登陆界面的html源码,效果如下
  • 保存后在浏览器访问:localhost:4327/4327.html
  • 在上面的文本框内随意输入,然后点击授权并登陆,但由于下载的html里面没有写action的代码,点击后没有任何变化。

3.Web前端javascipt

  • 以下使用javascript创建一些简单的用户名密码的验证规则(用户名不能为空以及对密码长度做出限制)
<html>
    <head>
        <script>
            function username_test(){
                var nameTest=document.getElementById("username");
                if(nameTest.value==""){
                    alert("用户名不能为空");
                }
            }

            function password_test(){
                var pwdTest=document.getElementById("password");
                if(pwdTest.value.length<6){
                    alert("密码长度不得少于六位");
                }
            }
        </script>
    </head>
    <body>
    </body>
</html>

Web后端MySQL基础

1.mysql数据库基础使用

  • 开启sql服务:/etc/init.d/mysql start
  • 使用root身份登陆:mysql -u root -p
  • 输入密码,默认为[email protected],随后进入mysql
  • 使用:show databases;可以查看数据库里库表的基本信息
  • use mysql; 选择mysql数据库
  • select user, password, host from user; 查看mysql库中的user表,表中存储着用户名、密码与权限
  • UPDATE user SET password=PASSWORD("4327") WHERE user=‘root‘; 更换密码为4327
  • 输入flush privileges; 更新权限
  • quit 退出

3.Mysql中建库建表

  • CREATE SCHEMA 4327_log; 建名为4327_log的库
  • CREATE TABLE 4327_log.users ( 表名为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 ‘‘);

4.添加用户

  • 输入use 4327_log打开表
  • 添加用户名与密码均为4327的用户:
  • insert into users(userid,username,password,enabled) values(2,‘154327‘,password("lovezh"),"TRUE");

4.Web后端数据库身份认证
1.登陆基础编写

  • 在/var/www/html文件夹下编写4327_login.html登陆界面
    并编写跳转界面4327_login.php

    <?php
    echo ($_GET["A"]);
    include($_GET["A"]);
    echo "hello this is 20154327<br>";
    ?>

登陆成功界面:

PHP+MySQL实现登录网页编写

  • 这一步卡了好久,换了好多种不同的PHP代码,也将自己的数据库修改无数次,各种不同的代码各有各的问题,最后终于将一个修改成功,这里贴出我的解决方案,供遇到相同问题的同学参考。
  • 在/var/www/html文件夹下编写123.html登陆界面并编写跳转界面login.php
  • 这里直接给出最终修改成功的代码,以及解决出现问题的方法。
<?php

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

 echo $uname; 

$query_str="SELECT * FROM yzhtable where username='$uname' and password='$pwd';";

/* echo "<br> {$query_str} <br>";*/

$mysqli = new mysqli("127.0.0.1", "yzh", "4327", "4327_log");

/* 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 "<br> Welcome login Mr/Mrs:{$uname} <br> ";
    } else {
        echo "<br> login failed!!!! <br> " ;
    }

    /* free result set */
    $result->close();
}

$mysqli->close();

?>
  • 登陆成功界面:
  • 登陆失败界面:
  • 在调试时遇到了这个问题,打开测试页面的时候出现如下错误:Forbidden
    You don‘t have permission to access /123.html on this server.
  • 开始我以为我配置出错,花半天时间都没有搞定,最后仔细都了下英文,感觉是权限不够.
  • 原因:apache权限不够。
  • 解决方法:更改文件权限;cd过去更改权限,权限指令在一开始的实验楼上有学,修改为755,chmod 755 123.html

5.简单SQL注入

1.永真式

  • 在用户名输入框中输入‘ or 1=1#,密码随便输入,就可以登陆成功

2.sql语句注入

  • 在用户名输入框中输入:‘;insert into yzhtable values(‘yzhyzh‘,‘00000‘);#SELECT * FROM yzhtable WHERE username=‘‘ insert into yqh666table values(‘yzhyzh‘,‘00000‘);,将用户名为yzhyzh、密码为00000的用户注入yzhtable表中,当时没有成功。
  • 后来发现一直登陆不成功是因为
    if ($result = $mysqli->query($query_str))  
  • 这条语句不允许多条执行,即php防范SQL攻击的措施,改为
    if ($result = $mysqli->multiy_query($query_str))
  • 如图
  • 我们在库表中查询一下,出现了yzhyzh这个用户

6.XSS攻击测试

1.DOM—based XSS

  • 在用户名输入框中输入:

    <img src="1.jpg" />once</a>
  • 然后登陆,
    登陆失败,但是会显示那个图片:
  • 一直是这个图片破损界面.
  • 这里其他同学也遇到了相同的问题,这里贴出一个解决方法:
  • 同上面网页打不开一样,我初步怀疑是权限不足造成的,cd过去更改权限,权限指令在一开始的实验楼上有学,修改为755,chmod 755 1.jpg
  • 成功打开

2.弹窗

  • 在用户名输入框中输入:后点击登陆,出现弹框:
  • 当然随后是登陆失败的界面

实验总结与体会

  • 最大的感悟就是做实验不能懒,前面几部分在老师刚布置下来就完成了,但后面一看要综合就拖了下去,到现在才完成。
  • 实验整体感觉比之前几次要难一些,因为牵扯到了需要自己去发现问题并想办法解决,而且这次实验算是真正的各种问题层出不穷,只能一点点解决,也正因为这样,这次实验我反反复复做了很多遍,但也因此加深了印象。

原文地址:https://www.cnblogs.com/lovezh/p/9054791.html

时间: 2024-08-30 18:01:45

20154327 EXP8 Web基础的相关文章

20145301赵嘉鑫《网络对抗》Exp8 Web基础

20145301赵嘉鑫<网络对抗>Exp8 Web基础 基础问题回答 什么是表单? 表单是一个包含表单元素的区域,主要负责数据采集部分.表单元素允许用户在表单中输入信息.一个表单有三个基本组成部分:表单标签.表单域.表单按钮: 表单标签:包含处理表单数据所用的URL以及数据提交到服务器的方法: 表单域:包含了文本框.密码框.多行文本框.下拉选择框等等: 表单按钮:包括提交按钮.复位按钮和一般按钮. 浏览器可以解析运行什么语言? 支持HTML(超文本标记语言).XML(可扩展标记语言)以及Pyt

20145331魏澍琛《网络对抗》Exp8 Web基础

20145331魏澍琛<网络对抗>Exp8 Web基础 实践内容: 1.简单的web前端页面(HTML.CSS等) 2.简单的web后台数据处理(PHP) 3.Mysql数据库 4.一个简单的web登陆页面例子 5.SQL注入.XSS攻击 Web前端:HTML基础 1.先将apache的端口号设为80(上节已经设置好了),接着结束掉占用80端口的进程,再启动apache. 2.在/var/www/html目录下创建20145331wsc.html文件,即前端文件. 附:检查第一步是否成功只需在

20145211 《网络对抗》Exp8 Web基础

20145211 <网络对抗>Exp8 Web基础 本实践的具体要求有: (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) 理解JavaScript的基本功能,理解DOM.编写JavaScript验证用户名.密码的规则. (3).Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表(1分) (4).Web后端:编写PHP网

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

20155336<网路对抗>Exp8 WEB基础实践 一.基础问题回答 1.什么是表单 表单是一个包含表单元素的区域,表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输入信息的元素,表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签.表单域.表单按钮: 2.浏览器可以解析运行什么语言 常见的可以使用html语言.xml语言.以及php语言.javascript语言,本次实验都有所涉及,还有python语言. 3.WebServer支持哪些动态语言 j

2017-2018-2 20155314《网络对抗技术》Exp8 Web基础

2017-2018-2 20155314<网络对抗技术>Exp8 Web基础 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 Apache的安装与配置 2 前端编程 3 后端编程 PHP的安装与配置 4 MYSQL的安装与配置 5 简单SQL注入与XSS 实验中遇到的问题及解决过程 实验总结与体会 参考资料 返回目录 实验内容 Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前端

20154322杨钦涵 EXP8 Web基础

EXP8 Web基础 一.基础问题回答 1.什么是表单? 表单:表单在网页中主要负责数据采集功能. 基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等. 表单按钮:包括提交按钮.复位按钮和一般按钮:用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作. 2.浏览器可以解析运行什么语言 超文本标记语言:HTML

Exp8 Web基础 20154328 常城

Exp8 Web基础 20154328 常城 一.基础问题回答 什么是表单? 表单是一个包含表单元素的区域,表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输入信息的元素,表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签.表单域.表单按钮: 表单标签():这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法: 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等: 表单按钮:包括提交按钮.复位

20154331 EXP8 web基础

EXP8 Web基础 一.基础问题回答 1.什么是表单? 答: 表单:表单在网页中主要负责数据采集功能. 基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等. 表单按钮:包括提交按钮.复位按钮和一般按钮:用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作. 2.浏览器可以解析运行什么语言? 答: 超文本标记

20155306 白皎 《网络攻防》 EXP8 Web基础

20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本).不使用处理脚本就不能搜集表单数据.表单由文本域.复选框.单选框.菜单.文件地址域.按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中.表单的种类有注册表.留言薄.站点导航条.搜索引擎等. -