zoukankan      html  css  js  c++  java
  • 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网页,连接数据库,进行用户认证(1分)

    (5).最简单的SQL注入,XSS攻击测试(1分)

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

    实验后回答问题

    (1)什么是表单

    • HTML 表单用于搜集不同类型的用户输入。
    •  表单包含表单元素——不同类型的 input 元素、复选框、单选按钮、提交按钮等等。

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

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

    • 诸如HTML5,XML,PYTHON,PHP,CGI,JSP等。

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

    • 有的支持php、asp、net、java、ruby等

    实验总结与体会

    • 这次主要的尝试是用了PHP脚本语言,之前我们学JAVA web的时候,也写过网页代码,也有前端,后台,数据库,只是我们当时用的是JSP。后来我思考了一下,只有用exclipse启用APACHE服务,本地才能打开jsp页面,后来我想,如果把我们这次做的php换成jsp,在kali里面,应该也是能够运行的。不过这次比较忙,并没有时间尝试……
    • 看到sql和xss能够轻易地攻击,这让我不禁想到为什么之前写代码,老师总是让我们不断地进行边界测试,正是当时代码的不完善,才导致后期运行会出现问题,还是小心为上。

    实践过程记录

    Apache

    • 修改/etc/apache2/ports.conf里的端口为5211,开启apachectl start命令开启Apach,;这样避免了端口占用问题。
    • 浏览器中输入localhost:5211可以正常开启,前期准备完成。

    简单的表单网页

    • 写一个带有表单功能的login页面,在浏览器中打开localhost:5211/5211.html,用了css架构,而且这个云是可以左右移动的,此处无法添加视频,只有静态画面。

    javascript

    • JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
    • 文档对象模型(Document Object Model,简称DOM,是W3C组织推荐的处理可扩展标志语言的标准编程接口。
    • 编写验证用户名和密码的规则:(比如用户名和密码必须由字母或数字组成,不能含有非法字符,且密码长度不能超过10)

    <script type="text/javascript">
    function check(){
    var user=document.getElementById("username").value;
    var reg_user=/^[a-zA-Z0-9]{1,10}$/;
    var pwd=document.getElementById("password").value;
    var reg_pwd=/^[a-zA-Z0-9]{1,10}$/;
    if(reg_user.test(user)==false){
    alert("username wrong");
    return false;
    }
    else if(reg_pwd.test(pwd)==false){
    alert("密码不能含有非法字符,长度在1-10之间");
    return false;
    }
    else
    return true;
    }
    </script>

    PHP测试

    • PHP,是一种通用开源脚本语言,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,语言嘛,看起来和谁都像,不过看到正则表达式就头大。

    • 一个简单的php测试代码:

    <?php
      echo ($_GET["A"]);
      include($_GET["A"]);
      echo "this is my first php page!<br>";
    ?>
    20145211
    • 打开localhost:5211/login.php:

    MySQL

    • 之前一直是在windows命令行里操作,这次换到kali里面,并没有什么差别。
    • 使用命令/etc/init.d/mysql start打开mysql服务
    • 输入mysql -u root -p,并根据提示输入密码,默认密码为p@ssw0rd,进入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 '');
    • 向表中添加内容:

    use 刚刚建立的库表的表名

    insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");

    • 创建表如下,一定要注意在sql中,不要忘记加“;”,不然就出不来了,只能强行退出

    php+mysql编写网页

    • 与数据库链接的php页面:
    • 输入登录信息,登录成功:

    • 在做实验的过程中,我发现数据表的名字不能叫USERS,因为这与默认的冲突,所以得换个名字,否则登录不成功

    SQL注入

    • 通过在Web表单中输入SQL语句,在一个存在安全漏洞的网站数据库上添加字段,把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器的目的。
    • 上课老师讲的是永真注入,不过现在一般正常的网站登录都已经考虑到这个问题,注入是无效的
      ' or 1=1#
    • 注入成功:

     

    • 这是因为注入后的查询SQL语句是:SELECT * FROM users where username='' or 1=1#' and password=password('');构成了恒成立的条件同样的思路也可以通过sql注入保存用户名密码到数据库:';insert into users values(“52110”,"52110"));#,  

    • 查看数据表,发现新添加了一个用户    

      

    • 此时在登录,成功

     

    XSS攻击

    • XSS攻击:跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,攻击者将代码植入到web页面中。这可以说是一种是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

    • 输入<img src="5211.jpg" />20145211</a>来读取网页目录下的图片:

  • 相关阅读:
    Dubbo与Eureka
    对称加密与非对称加密
    [转] SpringBoot2.0集成WebSocket,实现后台向前端推送信息
    [转] Druid简介(Spring Boot + Mybatis + Druid数据源【自己定制】)
    [转] rsync+inotify实现文件实时同步
    [转] windows server 几大实时同步软件比较
    [转] Springboot 整合RabbitMq ,用心看完这一篇就够了
    [转] Windows环境下部署RabbitMQ
    [转] 分布式缓存 Redis 集群搭建
    [转] 吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
  • 原文地址:https://www.cnblogs.com/nostalgia-/p/6821337.html
Copyright © 2011-2022 走看看