zoukankan      html  css  js  c++  java
  • 20145316《网络对抗》Exp9 Web安全基础实践学习总结

    20145316《网络对抗》Exp9 Web安全基础实践学习总结

    基础问题回答

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

    • SQL注入,就是攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到让后台数据库执行恶意的SQL命令的目的,并根据程序返回的结果,获得某些攻击者想得知的数据。
    • 防范:
    • 1.检查变量数据类型和格式
    • 2.过滤特殊符号
    • 3.绑定变量,使用预编译语句

    XSS攻击的原理,如何防御

    • XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。理论上,所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞,漏洞的危害取决于攻击代码的威力,攻击代码也不局限于script。
    • 防范:只要我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。XSS防御有如下方式————完善的过滤体系、Html encode。

    CSRF攻击原理,如何防御

    • CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。通过伪装受信任用户的请求利用受信任网站,利用用户在可信网站上没有登出的COOKIE做恶意操作
    • 防范:
    • 1.通过 referer、token 或者 验证码 来检测用户提交。
    • 2.尽量不要在页面的链接中暴露用户隐私信息。
    • 3.对于用户修改删除等操作最好都使用post 操作 。
    • 4.避免全站通用的cookie,严格设置cookie的域。

    实验总结与体会

    • 本次实验非常有趣,不同于以往在虚拟机内操作的实验,在webgoat网站上做实验有一种“闯关”解题的快感,一次性学会了很多攻击方法。也掌握了Berpsuite等工具的使用方法。最后一次实验,完美收官。

    实验过程

    • 先开启webgoat,等待加载。
    • 当出现下面这张图所示情景时Starting ProtocolHandler,说明开启成功
    • 在浏览器中访问localhost:8080/WebGoat,用默认用户名密码登陆即可

    1.Stored XSS Attacks

    • 这个实验的意思是存储型XSS攻击,通过输入代码使用户访问时弹出非预期的内容
    • 在title框中输入<script>alert("silly human!This is 20145316!");</script>
    • 点击submit,窗口弹出,攻击成功

    2.Reflected XSS Attacks

    • 类似上一个实验,是个买东西的页面,在code框中输入<script>alert("this is 5316,I'm rich");</script>
    • 弹出窗口,攻击成功

    3.Cross Site Request Forgery(CSRF)

    • 这个实验的目的是通过邮件的方式伪造一个转账请求,查看右侧参数栏内参数
    • 在文本框中提交一个有URL恶意请求的代码,<iframe src="attack?Screen=题中给出的scr&menu=题中给出的menu&transferFunds=转账金额"></iframe>
    • 攻击成功

    4.CSRF Prompt By-Pass

    • 比上个实验多了一个“确认请求”,所以需要增加一行代码,如下
    • 攻击成功,两个请求内容都有

    5.Phishing with XSS

    • 该实验的目的是读取登录用户的用户名和密码。首先输入编辑的钓鱼网站代码(XSS攻击代码)
    • 代码如下,参考了蔡野同学的博客
    • 在搜索框中输入攻击代码后点击搜索,会看到一个要求输入用户名密码的表单如下,输入用户名密码点击login
    • WebGoat会将输入的信息捕获并反馈回来,攻击成功

    6.Numeric SQL Injection

    • 题目大意是这个表单允许使用者看到天气数据,利用SQL注入使得可以看见所有数据
    • 这里要利用到代理berpsuite来对网页内容进行篡改,具体过程周岐浩同学博客写的很清楚,下面是我的操作过程图





    • 攻击成功

    7.String SQL Injection

    • 这个题目是让大家使用SQL注入让所有的信用卡号都看得见
    • 先尝试一个输入,根据结果来找到我们要进行SQL注入的位置
    • 在文本框中输入' or 1=1 --进行攻击,成功

    8.Log Spoofing

    • 该实验是在代码中加入用户名admin迷惑用户,当用户登陆的时候登录失败,但以为自己登陆成功了。
    • 在user name 处写入代码20145316%0d%0aLogin Succeed!%0d%0aUsername: admin
    • 攻击成功

    9.LAB:SQL Injection(Stage 1 String SQL Injection)

    • 使用admin账户Neville登陆
    • 首先在密码栏中输入' or 1=1 -- 进行永真式SQL注入,但是登录失败
    • 查看网页代码发现弑密码长度设置太短,将密码长度修长
    • 再次输入' or 1=1 --,成功

    10.LAB:SQL Injection(Stage 3:Numeric SQL Injection)

    • 登陆使用employee账号Larry登陆
    • 首先做上一个实验修改密码限制长度的操作
    • 点击ViewProfile,发现并没有办法使老板排在最前面
    • 更改网页代码,将ViewProfile参数改成如下
    • 再次' or 1=1 --登陆,成功

    记录


  • 相关阅读:
    leetcode 48. Rotate Image
    leetcode 203. Remove Linked List Elements 、83. Remove Duplicates from Sorted List 、82. Remove Duplicates from Sorted List II(剑指offer57 删除链表中重复的结点) 、26/80. Remove Duplicates from Sorted ArrayI、II
    leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes
    leetcode 58. Length of Last Word
    安卓操作的一些问题解决
    leetcode 378. Kth Smallest Element in a Sorted Matrix
    android studio Gradle Build速度加快方法
    禁用gridview,listview回弹或下拉悬停
    Android Studio找不到FragmentActivity类
    安卓获取ListView、GridView等滚动的距离(高度)
  • 原文地址:https://www.cnblogs.com/xxy745214935/p/6852456.html
Copyright © 2011-2022 走看看