2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326

Web安全基础

jar包,密码:9huw

实验问题回答

  • SQL注入攻击原理,如何防御
    • 原理:恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对未对插入的SQL语句进行过滤,导致SQL语句直接被服务端执行。
    • 防御:
      • 限制查询长度
      • 限制查询类型(权限)
      • 过滤非法字符
      • 正则表达式过滤传入参数
      • 预编译语句集PreparedStatement
  • XSS攻击的原理,如何防御
    • 原理:XSS是代码注入的一种,它允许恶意用户将代码注入到网页上,并能够被浏览器成功的执行,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。主要目的是想办法获取目标攻击网站的cookie,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的身份登陆,做一些破坏。
    • 防御:
      • 对输入和URL参数进行过滤
      • 在输出数据之前对潜在的威胁的字符进行编码、转义
  • CSRF攻击原理,如何防御
    • 原理:跨站请求伪造,通过伪装来自受信任用户的请求来利用web server
    • 防御:
      • 验证请求中的Token
      • 验证 Referer
      • 添加加随机验证
      • 设定cookie域

目录

  • SQL攻击
  • XSS攻击
  • CSRF攻击
  • 实验心得体会

WebGoat

我们本次的实验在WebGoat平台上进行

WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,目前提供的训练课程有很多,包含了XSS、线程安全、SQL注入等。
参考资料:webgoat学习笔记

  • 普通安装,命令行输入java -jar webgoat-container-7.0.1-war-exec.jar
  • 浏览器转:localhost:8080/WebGoat 登陆,开始练习

SQL攻击

1、String SQL Injection

  • 根据题目要求输入:Smith,可以看到查询的相关信息,语句为SELECT * FROM user_data WHERE last_name = 'Smith'
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第1张图片
  • 为了看到所有的用户,注入一个永真式'or 1='1,攻击成功
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第2张图片

2、Database Backdoors

  • 题目使用string SQL注入来执行多个语句
  • 首先验证一下语句,在user ID输入101; update employee set salary=5000,可以看到更新的数据
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第3张图片
  • 进行注入101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHEREuserid = NEW.userid创建后门
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第4张图片

3、Numeric SQL Injection

  • 通过注入字符串查看所有的天气,在任意一个option值的后面j加入一个永真式1=1
  • 对源码进行修改(firebug在升级后整合了,所以可以直接在开发者工具中开打开控制台进行l调试就可以了参考链接)
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第5张图片
  • 攻击成功
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第6张图片

4、LAB:SQL Injection

  • stage1跟上一个原理相似,在密码栏中输入or 1=1 --进行SQL注入
  • 失败,查看源码发现是对输入长度进行了限制,修改源码再次注入,成功
  • stage3的话浏览员工信息需要点击ViewProfile,在网页代码中分析一下这个按钮,发现这个地方是以员工ID作为索引传递参数的,通过Larry来浏览Neville账户信息的话,就要重新order一下,修改value值为101 or 1=1 order by salary desc --
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第7张图片
  • 查看到该账户
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第8张图片

5、Log Spoofing

  • 利用换行符伪造一个假的日志信息,登陆欺骗。使得用户名为“admin”的用户,在日志中显示“成功登录”
  • 在User Name文本框中输入cz%0d%0aLogin Succeeded for username: admin,其中%0d是回车,%0a是换行。
  • 成功登陆
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第9张图片

XSS攻击

1、Phishing with XSS

  • 在搜索框中直接输入要进行xss的攻击代码。参考编写,添加一个form可以让用户输入用户名和密码,再使这些信息能够发送给网站并显示





This feature requires account login:



Enter Username:

Enter Password:




  • 点击search,出现表单,输入信息,点击登录,弹出捕获信息,攻击成功
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第10张图片

2、Stored XSS Attacks

  • 创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容
  • 命名title(随意),在message里输入一串js代码:
  • 点击刚刚创建的帖子,弹出窗口
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第11张图片

3、Reflected XSS Attacks

  • 输入错误用户信息后,服务器校验输入有误,返回错误页面并将错误内容展示。如果输入一个攻击URL就会返回该信息。
  • 输入,提交
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第12张图片

CRSF攻击

1、Cross Site Request Forgery(CSRF)

  • 写一个URL放进Message框,使其他用户不可见,设置成一个隐藏图片,用户一旦点击就会触发一个CSRF事件
  • 在Message里输入
  • 点击该消息,页面就会下载这个消息并显示,就会执行转走用户的存款

2、CSRF Prompt By-Pass

  • 查看页面下侧Parameters中的src和menu值,命名title,message框中输入代码:

  • 查看消息,看到转账消息。
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第13张图片
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326_第14张图片

心得体会

这次的实验加深了对三个攻击的理解,实战其实还是挺有意思的,攻击同时也能去想怎样防御才是最好的,收获还是很多。

你可能感兴趣的:(2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326)