20192430 2021-2022-2 《网络与系统攻防技术》实验八实验报告

一、实验内容

(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试
(6)安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。。


二、实验过程

任务一:Web前端HTML

(1)kali自带apache,直接启动即可

(2)查看apache状态

(3)在浏览器输入本机的IP地址打开apache的默认网页

(4)进入/var/www/html目录,创建form_20192430.html,编写html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="index.css">
    <title>登录界面</title>
</head>
<body>
    <div class="box">
        <div class="left"></div>
        <div class="right">
            <h4>登 录</h4>
            <form name="form1" method="post" action="login.php">
                <input class="acc" type="text" name="username" placeholder="用户名">
                <input class="acc" type="password" name="password" placeholder="密码">
                <input class="submit" type="submit" name="btn1" value="登录">
            </form>
        </div>
    </div>

</body>
</html>

css代码略

(5)浏览器打开文件

任务二:Web前端javascipt

(1)编写JavaScript验证用户名、密码的规则。

<script language="javascript">
    function login(){
    	if(form1.username.value==""||
    		form1.password.value==""){
    			alert("用户名或密码不能为空!")
    	}else{
    		document.write("欢迎"+form1.username.value)
    	}
    	}
</script>

(2)再次打开文件,输入用户名密码登录


(3)尝试注入攻击

<script language="javascript">alert("20192430")</script>

正常登录并弹窗

任务三:Web后端:MySQL基础

(1)启动mysql服务

service mysql start

(2)登录mysql

mysql -u root //kali中mysql中root用户默认无密码

(3)创建用户并登录

create user 'xzc'@'localhost' identified by '20192430';

(4)修改密码

set password for xzc@'localhost'=password('2430');

(5)赋权

(6)建库

create database db_xzc;

(7)建表

create table login(username VARCHAR(20),password VARCHAR(20));

(8)插入数据

insert into login values('20192430xzc','20192430');

(9)查看结果

show databases;
select * from login;


任务四:Web后端:编写PHP网页,连接数据库,进行用户认证

(1)编写后端的php网页

<?php
$uname=$_POST["username"];
$pwd=$_POST["password"];
echo $uname;
$query_str="SELECT * FROM login where username='$uname' and password='$pwd';";
$mysqli = new mysqli("127.0.0.1","20192430","20192430","db_xzc");
$query_str1="use db_xzc;";

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
} 
echo "数据库连接成功!";
/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
    if ($result->num_rows > 0 ){
        echo "<br> {$uname}:欢迎登录!! <br> ";
    } 
    else {
        echo "<br> 用户名或密码错误! <br> " ;
    }
        /* free result set */
        $result->close();
    }
$mysqli->close();
?>

(2)修改html文件的action

(3)打开网站127.0.0.1/form_20192430.html,输入用户名和密码登录
(4)登录成功结果

(5)登陆失败结果

任务五:最简单的SQL注入,XSS攻击测试

(1)简单sql注入

' or 1=1#
随意密码


(2)简单xss攻击

<script>alert('abaaba')</script>

任务六:安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。

(1)下载webgoat的jar包

(2)安装运行

java -jar webgoat-server-8.0.0.M26.jar

(3)浏览器打开后注册即可

http://localhost:8080/WebGoat

(4)sql注入

第5题

尝试授予用户组“UnauthorizedUser”更改表的权限:

grant alter table to UnauthorizedUser

(5)xss攻击

第2题

XSS祖传测试伎俩
目标是用浏览器,使用javascript伪协议,在输入框输入

javascript:alert(document.cookie)

然后问你,每个地方都输出的一样吗?肯定一样了

yes

这个只是告诉你,可以这么来,现在浏览器基本都过滤了这种情况

(6)crsf攻击

第3题

通过跨站去执行提交查询这个操作,然后返回的flag就是答案
直接点击flag是null

将按钮处的html复制并创建新的html打开即可获得flag值

<html>
    <body>
            <form accept-charset="UNKNOWN" id="basic-csrf-get" method="POST" name="form1" target="_blank" successcallback="" action="http://localhost:8080/WebGoat/csrf/basic-get-flag">
            <input name="csrf" type="hidden" value="true">
			<input type="submit" name="submit">
		</form>
	</body>
</html>


三、问题与解决方法

  • 问题一:安装webgoat报错
  • 解决方案:选择较低版本安装
  • 问题二:新用户无法连接到数据库
  • 解决方案:完全赋权

四、实验感想

这次实验主要是web安全方面,内容较多耗时较长,本次实验将实践内容和理论相结合,对SQL注入攻击、XSS跨站脚本攻击、CSRF跨站请求伪造攻击有了更深刻的理解。希望今后还能继续完善这方面的知识,理论与实践相互促进。
最后感谢老师和同学对于实验问题的解答与帮助。

posted @ 2022-06-07 15:37  屿微  阅读(28)  评论(0编辑  收藏  举报