zoukankan      html  css  js  c++  java
  • 2018-2019-2 20165325《网络攻防技术》Exp 8 Web基础

    2018-2019-2 20165325《网络攻防技术》Exp 8 Web基础

    实验内容

    Web前端HTML

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

    Web前端javascipt

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

    Web后端_MySQL基础

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

    Web后端

    编写PHP网页,连接数据库,进行用户认证

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

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


    实验步骤

    前端

    输入service apache2 start(默认情况下kali里面有apache)

    启动之后打开浏览器,输入网址127.0.0.1可以看到apache的默认界面,如图所示:

    关闭:service apache2 stop,如图所示:

    进入cd /var/www/html进入Apache目录下,新建form.html代码如下:

    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	<title>表单</title>
    </head>
    <body>
    <center>
    	<form name="myform" method="post" action="login">
            <label>
                <input type="text" name="username" required placeholder="用户名">
            </label>
            <label>
                <input type="password" name="password" required placeholder="密码">
            </label>
            <br><br>
            <input type="submit" value="登  录" onclick="return beforeSubmit()">
        </form>
    </center>
    <script type="text/javascript">
        function beforeSubmit()
        {
            if(document.myform.username.value=="")
            {
                alert("请输入正确的用户名");
                return false;
            }
    		  if(document.myform.password.value=="")
            {
                alert("请输入正确的密码");
                return false;
            }
            return true;
        }
    
    </script>
    </body>
    </html>
    

    效果如下:

    不输入用户名:

    不输入密码:

    MySQL

    输入:/etc/init.d/mysql start

    进入mysql:mysql -u root -p

    修改密码:先use mysql;,再UPDATE user SET password=PASSWORD("root") WHERE user='root';

    建库:create database newdb;

    建表:create table users(uname VARCHAR(20),password VARCHAR(20)) ;

    查看表信息:show tables;

    插入数据:insert into users values('testnew','testnew');

    查询表中的数据:select * from users;

    Web后端

    首先测试一下php能不能使用,编写test.php代码如下:

    
    <?php
    echo ($_GET["a"]);
    include($_GET["a"]);
    echo "This is my php test page!<br>";
    ?>
    
    

    输入网址,如图所示:

    这证明,虚拟机里面的php是正常工作的。

    编写login.php:

    
    <?php
    $username=$_POST["username"];
    $password=$_POST["password"];
    $query_str="SELECT * FROM users where uname='$username' and password='$password';";
    $mysqli = new mysqli("127.0.0.1", "ldj", "5325", "newdb");
    $query_str1="use newdb;";
    /* check connection */
    if ($mysqli->connect_errno) {
      printf("Connect failed: %s
    ", $mysqli->connect_error);
      exit();
    }
    /* Select queries return a resultset */
    if (!($result = $mysqli->query($query_str1)))
    	echo"<br>Success into database!";
    if ($result = $mysqli->query($query_str)) {
      if ($result->num_rows > 0 ){
              echo "<br> {$username},Welcome login! <br> ";
      } 
      else {
          echo "<br> login failed!!!! <br> " ; }
      /* free result set */
      $result->close();
    }
    $mysqli->close();
    ?>
    

    记得修改之前的表单,form处添加action=login.php,运行效果如图:

    SQL注入,XSS攻击

    SQL注入如图所示:

    结果如图所示:

    XSS攻击如图所示:

    结果如图所示:


    回答问题

    什么是表单

    就是form,提交给后台的一张表。里面有各种信息,后台可读取。

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

    支持HTML、XML、PHP、JavaScript等

    WebServer支持哪些动态语言

    JavaScript、PHP等脚本语言

  • 相关阅读:
    运行python脚本后台执行(转载)
    双积分式(A/D)转换器电路结构及工作原理
    SAR ADC简介
    [hdu-6395]Sequence 分块+矩阵快速幂
    [hdu-1272]小希的迷宫 并查集
    redhat7.2安全基线BI
    Oracle 12c RAC
    .gitlab-ci.yml简介
    gitlab
    Centos 7 Docker安装配置
  • 原文地址:https://www.cnblogs.com/maxeysblog/p/10881046.html
Copyright © 2011-2022 走看看