• 20155328 《网络对抗》 实验九 Web安全


    20155328 《网络对抗》 实验九 Web安全

    基础

    实验过程记录

    在实验开始之前先把webgoat的jar包放到home目录下。打开终端,用命令java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat.

    输入默认的用户名和密码,登陆webgoat。

    XSS攻击

    1.Pinishing with XSS跨站脚本钓鱼攻击

    在webgoat中打开Pishing with XSS,将写好的前端代码粘贴到输入框中,点击search:

    在登陆框输入用户名和密码,登陆后跳出来的框中就显示出来了:

    2.Stored XSS Attacks存储型XSS攻击

    在WebGoat中打开Stored XSS Attacks,Message框中输入<script>alert("I am zhangyuqing");</script>,点击submit提交:

    3.Reflected XSS Attacks反射型XSS攻击

    打开XSS第三个攻击,在code框中输入<script>alert("I am groot20155328");</script>,点击purchase出现对话框:

    CSRF攻击

    4.Cross Site Request Forgery(CSRF)

    查看网页右边Parameters中的src和menu值,在title框中输入学号,message框中输入代码<img src='attack?Screen=src值&menu=menu值&transferFunds=转账数额' width='1' height='1'>,提交后
    生成链接20155328:

    点开链接,可以看到用户操作信息:

    5.CSRF Prompt By-Pass

    在title框中输入学号,message框中输入代码:

    <iframe src="attack?Screen=src值&menu=menu值&transferFunds=转账数额"> </iframe>
    <iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
    

    提交后点开生成的名为20155328的链接:

    SQL注入攻击

    6.命令注入(Command Injection)

    调试网页源代码需要用到Firebug,我的浏览器没有,所以就去工具栏的Add-on中下载:

    下载并安装好以后,工具栏多出一个小虫子图标,点开就可以开始用firebug进行网页源代码调试啦:

    点开虫子图标,在view那一行的复选框中代码后添加"& netstat -an & ipconfig"

    点击view按钮,就可以看见刚才输入的命令执行结果了:

    7.Log Spoofing日志欺骗

    在username中输入5328%0d%0aLogin Succeeded for username: admin,点击Login:

    8.String SQL Injection字符串型注入

    选择String SQL Injection,输入查询的用户名Zhang' or 1=1--(Zhang之后的引号与之前的引号形成闭合,而1=1是永真式,--之后的内容被注释掉了,即可查询表中所有数据):

    9.LAB:SQL Injection

    在密码框中输入' or 1=1 --,登陆失败;使用Firebug查看网页源码,发现密码有长度限制,就将maxlength改为100,再次尝试;成功:

    10.Database Backdoors

    输入实例101尝试,获得了用户号为101的用户信息:

    输入语句101; update employee set salary=99999,将用户工资变为99999:

    输入语句101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155328@hackme.com' WHERE userid = NEW.userid,则表中一旦添加新用户,该用户的邮箱即为我设置的邮箱。

    实验后问题回答

    • SQL注入攻击原理是啥?如何防御?

    原理是将SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防御方法就是尽量替换单引号,并删除用户输入内容中的所有连字符。

    • XSS攻击原理是啥?如何防范?

    原理是往Web网页中插入恶意HTML代码,当用户浏览该页时,恶意代码就会被执行。防范方法:在表单提交或者url参数传递前,对需要的参数进行过滤。

    • CSRF攻击原理是啥?如何防范?

    钓鱼,让用户在不知情的情况下攻击自己登陆的一个系统。防御:尽量不要在页面的链接中暴露用户隐私信息;避免全站通用的cookie,严格设置cookie的域。

    实践总结与体会

    哇,最后一次实验敲到这里也就要说拜拜了。9次实验里面感觉学了很多很厉害的东西(虽然对于专业人士而言只是一点皮毛),但也感觉超绝快乐!!学而不思则罔,希望自己接下来的学习路也能一边思考一边学吧。ヾ(◍°∇°◍)ノ゙加油!

  • 相关阅读:
    SpringBoot引入spring-boot-starter-security后无法接收前端请求
    虚拟机IP地址不断改变的解决办法
    加密
    Golang设计模式学习笔记--建造者模式
    goland快捷键
    使用webhook实现博客网站自动化部署
    hugo + nginx 搭建博客记录
    Maven打包方式(多模块)
    如何抑制SettingWithCopyWarning
    时间复杂度分析--公式法
  • 原文地址:https://www.cnblogs.com/zyqzyq/p/9107819.html
Copyright © 2020-2023  润新知