2019-2020-5 20175121杨波《网络对抗技术》Exp8 Web基础

时间:2020-05-15 23:02:56   收藏:0   阅读:127

标签: linux web


一、实践目标

1.1 实验对象

1.2 实践内容

二、基础知识

2.1 实践要求

2.2 前提知识

GET/POST

SQL注入

XSS攻击

三、实践步骤

3.1 Web前端: HTML

技术图片

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login</title>
</head>
<style type="text/css">
    body{
     background-image:url(/var/www/html/image.jpg) 
}
</style>
<body>
<div align="center" style="padding-top: 50px;">
<form action="login" method="post" name="login" >
<table width="740" height="300" >
<tr height="30">
<td colspan="2"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%">用户名:</td>
<td><input type="text" value="" name="username" id="username"/></td>
<td width="30%"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%">密 码:</td>
<td><input type="password" value="" name="password" id="password"/></td>
<td width="30%"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%"><input type="submit" value="登录"/></td>
<td align="center"><input type="button" name="close" value="关闭" οnclick="window.close();" /></td>
<td width="30%"></td>
</tr>
</table>
</form>
</div>
</body>
</html>

技术图片

3.2 Web前端: JavaScript

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login</title>
<script type="text/javascript">
    function resetValue(){
        document.getElementById("username").value="";
        document.getElementById("password").value="";
    }
</script>

</head>
<style type="text/css">
    body{
     background-image:url(/var/www/html/image2.jpg) 
}
</style>
<body>
    <div align="center" style="padding-top: 50px;">
        <form action="login.php" method="POST" name="login" >
        <table  width="740" height="300"  >

                <td colspan="2"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%">用户名:</td>
                <td><input type="text" value="" name="username" id="username"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%">密  码:</td>
                <td><input type="password" value="" name="password" id="password"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%"><input type="submit" name="login" value="登录"onClick="return Login()" /></td>
                <td align="center"><td align="center"><input type="button" name="close" value="关闭" οnclick="window.close();" /></td></td>
                <td width="30%"></td>
            </tr>
            
            
        </table>
        </form>
    </div>


    <script language="javascript">
    function Login(){
        var Name = document.login.username.value ;
        var Pwd = document.login.password.value ;
        if ((Name =="") ){
            alert("用户名为空!");
            return false ;
        }
       if ((Pwd=="")){
            alert("密码为空!");
            return false ;
        }
    }
</script>
</body>
</html>

技术图片

3.3 Web后端: MySQL基础

技术图片

- 输入use mysql;//选择mysql数据库
- UPDATE mysql.user SET authentication_string = 20175121, plugin = ‘mysql_native_password‘ WHERE User = ‘root‘ AND Host = ‘localhost‘;//更改密码

技术图片

create database markdata;
use markdata
create table login5121(username VARCHAR(30),password VARCHAR(30));
insert into login5121 values(‘yb‘,‘20175121‘);
select * from login5121;

技术图片

技术图片

3.4 Web后端: 编写PHP网页

service apache2 start
/etc/init.d/mysql start
netstat -aptn

技术图片

<?php
include($_GET["a"]);
?>

在浏览器中输入[本机IP地址]/test.php?a=/etc/passwd可以看到/etc/passwd文件的内容

技术图片

<?php
$uname=($_POST["username"]);
$pwd=($_POST["password"]);
/*echo $uname; */
$query_str="SELECT * FROM login5121 where username=‘{$uname}‘ and password=‘{$pwd}‘;";
/*echo "<br> {$query_str} <br>"; */
$mysqli = new mysqli("127.0.0.1", "root", "", "markdata");
/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n",$mysqli->connect_error);
    exit();
}
echo "连接成功! ";
if ($result = $mysqli->query($query_str)) {
    if ($result->num_rows > 0 ){
        echo "<br> welcome:{$uname}<br> ";
    } 
    else {
        echo "<br> 登入失败 <br> " ;
    }
    /* free result set */
    $result->close();
}
$mysqli->close();
?>

技术图片

技术图片

3.5 SQL注入: XSS攻击测试

技术图片

技术图片

技术图片

技术图片

技术图片

四、实验总结与体会

4.1 实验中遇到的问题

4.2 基础问题回答

4.3 实验感悟

通过本次实验,我复习了下之前学习过的html和sql语言,并且还学习了一点php语言。通过简单了解了前端后台和数据库地搭建,初步尝试了简单的数据库注入和XSS攻击,虽然之前看过老师演示SQL注入攻击,但是自己没有亲自尝试过,这次实验让我对SQL注入攻击有了更深的感悟,在设计后台逻辑时需要考虑如何抵御这类的SQL注入攻击,同时这次试验重温了一些web知识,加深了理解,也有新的学习和收获。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!