• 20192427 李睿智 202120222 《网络与系统攻防技术》实验八实验报告


    20192427 李睿智 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攻击。
    
    

    二,实验过程

    2.1 Web前端HTML

    1,输入如下命令,打开Apache服务,并输入第二条命令来查看端口信息,发现80端口被Apache2监听,启动成功。

    service apache2 start // 启动Apache服务
    
    netstat -aptn //查看端口信息
    

    2,使用浏览器打开127.0.0.1,如果可以正常打开Apache的介绍网页,则开启成功。

    3,使用如下命令,进入Apache目录下,新建一个简单的含有表单的html文件

    cd /var/www/html
    

    并使用如下命令进入含有表单的html文件

    vi 2427.html
    

    再在当中编写登录页面

    4,在浏览其中输入如下命令打开网页

    /var/www/html/2427.html
    

    5,理解GET和POST方法
    method属性分Post和Get两种,这里的提交方法method是Post,其主要区别有以下几方面:
    (1)Get用来从服务器上获得数据,而Post用来向服务器上传递数据。
    (2)Get是不安全的,因为在传输过程中,数据被放在请求的URL中,而如今现有的很多服务器会将URL记录到日志文件中,然后存储在某个地方,这样就可能会泄露信息。Post的所有操作对用户来说都是不可见的。
    (3)Get传输的数据量小,Post的传输量大,所以在上传文件只能使用Post。

    2.2 Web前端javascipt

    使用JavaScript来编写一个验证用户名、密码的规则

    再次在浏览器中访问,此时,如果用户或者是密码没有填写,网页就会报出相关的提示

    2.3Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表

    1,先使用如下代码进行相关操作

    service mysql start //开启MySQL服务
    sudo mysql -u root -p //使用mysql,默认密码是password
    


    2,用show databases;;查看数据库基本信息
    注意
    代码后面一定要有“;”否则会出现错误。

    3,使用use mysql;选择使用mysql这个数据库

    4,使用select user, password, host from user;查看当前用户信息


    5,使用set password for root@'localhost'=password('20192427');修改密码

    6,使用flush privileges;更新权限

    7,输入exit退出数据库,使用新的密码登录
    注意
    此时不需要“;”

    8,使用mysql -u root -p再一次登录,使用密码为20192427

    9,使用create database YH;创建一个新的数据库YH,创建好后使用 show databases;进行查看。

    10,
    先使用之前创建的数据库use yh;
    再使用create table login(username VARCHAR(20),password VARCHAR(20));建立数据库表login,并设置字段基本信息

    11,使用show tables;查看表信息

    12,使用 insert into login values ('20102427@qq.com', '20192427');插入数据

    13,使用select * from login;查询表中的数据


    13,在MySQL中增加新用户,输入grant select,insert,update,delete on YH.* to lxm@localhost identified by "20192427"; 命令在MySQL中增加新用户,这句话的意思是将对YH数据库的所有表的select,insert,update,delete权限授予当前主机localhost登录的用户lxm,20192427是登录密码。


    14,使用新用户进行登录
    mysql -u lxm -p

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

    1,创建测试文件2427.php查看php文件内容

    cd /var/www/html
    vi 2427.html   
    gedit 2427.php  
    

    2,编写test.php内容:

    <?php
    echo "欢迎登录";
    echo $_POST["Name"];
    ?>
    

    3,打开2427.html文件修改表单的action属性为2427.php

    4,打开127.0.0.1、2427.html
    输入之前的账户和密码
    20192427@qq.com
    20192427
    接着跳转到欢迎界面

    5,下面实现javascript章节中的尝试注入攻击:利用回显用户名注入HTML及JavaScript的内容:
    方法:登陆127.0.0.1/2427,html、将用户名改为<script>alert("hack!")</script>


    6,编写PHP网页,进入目录2427login.php进行编写

    7,并再次将2427.html文件中的表单的action属性修改为2427login.php

    8,使用浏览器打开2427.html,输入账户,密码

    跳转结果:

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

    (1)SQL注入

    在 wty_java.html网站输入用户命为'or 1=1#,密码输入任意值都可以跳转入成功界面。

    成功原因:此时查询语句为select * from users where name='' or 1=1 #' and password=' ';,又#在MySQL代表注释,查询语句实际为select * from users where name='' or 1=1为永真式,则这个条件恒成立,所以数据库不会报错。

    (2)XSS攻击

    将一张图片命名为20192427.jpg放入文件夹/var/www/html中,在用户名处输入以下代码,密码任意

    转到图片

    2.6 安装Webgoat或类似平台的SQL注入、XSS、CSRF攻击各一例

    1,下载安装webgoat
    地址为:https://github.com/WebGoat/WebGoat/releases

    2,在kali中创建一个webgoat的文件夹,并在kali中预装Java环境。
    java -version

    这时出错了

    3,只能用别的方式再做一次了

    下载连接:https://github.com/WebGoat/WebGoat/releases
    选择的版本是8.1.0版本

    4,使用http://localhost:8080/WebGoat打开webgoat登录界面,并进行账号注册

    5,SQL注入攻击
    题目描述:在不需要知道任何用户名的情况下,得到整张表的内容

    输入 1 or 1=1 本段SQL语句构建成了一个动态语句,其目的为:根据删选条件查出表user_data中所有的数据(暴库),实现原理为:where接的条件中必须有一个永真条件,因此可以选择如下的下拉框选项,即可获取表单内容

    6,XSS攻击
    这种攻击常见于论坛等留言平台,用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中。因为是留言,所以任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行。
    在信息中输入:

    7,CSRF攻击
    选择的是Cross Site Request Forgery(CSRF)
    题目要求是发送一个恶意URL请求的图片给用户,在message框里输入一段文字,文字里包含了恶意图片,不能让别人看出了。
    输入
    <img src="http://localhost:8080/WebGoat/attack?Screen=312&menu=900&transferFunds=10000" width="1" height="1">,其中src指向网站的链接,这里就是自己的这个网站,后面的两个参数可以根据红框中的值据实填写,转账金额暂定成10000元,然后通过宽高设置成1像素,隐藏掉这个图片。

    三,实验问题及解决方案

    • 问题一


    粗心导致的错误,每次输命令时都忘记在命令后面加上“;”

    问题解决:在命令后门添加“;"

    • 问题二
      在浏览器中打开,PHP文件时显示白屏

    问题解决:上网搜索解决方法,网上给出的解决方法是:修改下/etc/php.ini,将short_open_tag改成on,重启apache测试下

    • 问题三
      下载完Webgoat后,kali上使用java运行时,使用不成功。

    解决方法:换到主机上去去做,并且换了另一个Webgoat版本。

    四,学习感悟和思考

    此次实验主要是针对web安全相关的一些实践。通过此次实验要求掌握web的一些基础知识如,HTML和JavaScript以及Mysql和PHP,将这些知识相结合,然后再尝试不同类型的web攻击。实验中也遇到了许许多多的问题,不断地再网上找解决方法,此次实验也是众多实验最花费时间地一个。通过学习了解web安全相关的知识,也是慢慢地将问题解决。

    五,参考资料

    1,https://blog.csdn.net/weixin_50012220/article/details/119209336
    手把手教你在kali-Linux 2020.3安装webgoat
    2,https://blog.csdn.net/Dexter_Wang/article/details/68489121
    http://www.cnkuai.cn/news/20123/783.htm
    解决PHP文件在浏览器的白屏问题

  • 相关阅读:
    Delphi
    delphi trayIcon控件,如何实现窗口最小化的时候到系统托盘
    delphi2010自带 TTrayIcon 托盘图标控件使用方法
    通过例子来简单了解下TProgressBar的使用。 pas文件程序如下
    ORA-12154,ORA-12560解决过程
    博客备份小工具3
    各大招聘网站信息实时查询浏览
    IE7中使用Jquery动态操作name问题
    js问题杂记
    动态sql
  • 原文地址:https://www.cnblogs.com/lrz2427/p/16325876.html
Copyright © 2020-2023  润新知