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\n", $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等脚本语言

posted @ 2019-05-17 20:40  Maxeys  阅读(271)  评论(0编辑  收藏  举报