1.WebGoat实践

(1)wegoat安装

  • 下载 webgoat-container-7.0.1-war-exec.jar ,开启WebGoat,在终端中输入命令 java -jar webgoat-container-7.0.1-war-exec.jar

  • 在火狐中输入 http://localhost:8080/WebGoat 进入WebGoat登录界面

(2)攻击列表

  • Stored XSS Attacks

  • Cross Site Request Forgery(CSRF)

  • CSRF Prompt By-Pass

  • LAB:SQL Injection(Stage 3:Numeric SQL Injection)

  • Command Injection

  • Numeric SQL Injection

  • Log Spoofing

  • String SQL Injection

  • LAB:SQL Injection(Stage 1:String SQL Injection)

  • LAB:SQL Injection(Stage 3:Numeric SQL Injection)

Stored XSS Attacks

  1. 将带有攻击性的URL作为输入源,输入<script>alert("1");</script>,弹出对话框1

Cross Site Request Forgery(CSRF)

  1. 利用cookie冒名登录,用代码伪造请求
  2. 在message框中输入:<img src="http://localhost:8080/WebGoat/attack?Screen=288&menu=900&transferFunds=4305"/>,注意这里面的Screen和menu的值与右边Parameters一致

  3. 提交后,会在消息列表中看到一个新的消息,点击该消息,当前页面就会下载这个消息并显示出来,转走用户的4305元,攻击成功。

CSRF Prompt By-Pass

  1. 构造两次CSRF攻击,一是转账请求,二是确认转账成功请求,即transferFunds=4305,transferFunds=CONFIRM
  2. 在浏览器中手动输入URL:localhost:8080/WebGoat/attack?Screen=275&menu=900&transferFunds=4305进入确认转账请求页面

  3. 点击了CONFIRM按钮之后,再在浏览器中输入URL:localhost:8080/WebGoat/attack?Screen=275&menu=900&transferFunds=CONFIRM,成功转走4305元:

Command Injection

  1. 这个题是要求能够在目标主机上执行系统命令,我们可以通过火狐浏览器下的一个扩展Firebug(就是右上角的小虫的标志)对源代码进行修改,例如在BackDoors.help旁边加上"& netstat -an & ipconfig"

2.之后在下拉菜单中能看到我们修改后的值

3.选中修改后的值再点view,可以看到命令被执行,出现系统网络连接情况

Numeric SQL Injection

1.构造一个永真式就完事了

Log Spoofing

  1. 利用换行符伪造一个假的日志信息,在User Name文本框中输入xgh%0d%0aLogin Succeeded for username: admin,(%0d是回车,%0a是换行符)

2.如图所示,攻击成功

String SQL Injection

  1. 在文本框中输入' or 1=1 --

2.Go,攻击成功,所有用户信息都被显示出来

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

  1. 以用户Neville登录,在密码栏中输入'or 1=1--进行SQL注入成功

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

  1. 以用户名Larry登录,登录之后看到浏览员工信息的按钮是ViewProfile

  2. 在网页代码中分析按钮,发现是以员工ID作为索引传递参数的,我们要通过Larry来浏览老板账户信息,一般来说老板的工资都应该是最高的,所以把其中的value值改为101 or 1=1 order by salary desc --,老板的信息就会被排到第一个

2.实验问题

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

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL注入攻击是黑客对数据库进行攻击的常用手段之一。

SQL注入攻击指的是就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

防御:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等。

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把秘密信息直接存放,加密或者hash掉密码和敏感的信息。

(2)XSS攻击的原理,如何防御

XSS攻击:跨站脚本攻击。

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略。

防御:

基于特征的防御:

传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。

基于代码修改的防御:

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

步骤2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

步骤3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。

(3)CSRF攻击原理,如何防御

CSRF即跨站请求伪造。借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。

CSRF一般的攻击过程是,攻击者向目标网站注入一个恶意的CSRF攻击URL地址(跨站url),当(登录)用户访问某特定网页时,如果用户点击了该URL,那么攻击就触发了。

防御

referer

因为伪造的请求一般是从第三方网站发起的,所以第一个防御方法就是判断 referer 头,如果不是来自本网站的请求,就判定为CSRF攻击。但是该方法只能防御跨站的csrf攻击,不能防御同站的csrf攻击(虽然同站的csrf更难)。

使用验证码

每一个重要的post提交页面,使用一个验证码,因为第三方网站是无法获得验证码的。还有使用手机验证码,比如转账是使用的手机验证码。

使用token

每一个网页包含一个web server产生的token, 提交时,也将该token提交到服务器,服务器进行判断,如果token不对,就判定位CSRF攻击。

将敏感操作又get改为post,然后在表单中使用token. 尽量使用post也有利于防御CSRF攻击。

 3.实验总结与体会

还有15分钟就不能交作业了,所以就少做点。。。感觉还是挺好玩的,要是在ctf比赛前作就更好了。最后一次实验就结束了,终于不用写博客了O(∩_∩)O哈哈~

转载于:https://www.cnblogs.com/zui-luo/p/10927825.html

20164305 徐广皓《网络对抗》Exp9 Web安全基础实践相关推荐

  1. 2018-2019 20165208 网络对抗 Exp9 Web安全基础

    目录 2018-2019 20165208 网络对抗 Exp9 Web安全基础 实验内容 基础问题回答 实践过程记录 1. WebGoat准备 2. SQL注入攻击 2.1 Command Injec ...

  2. 20145227鄢曼君《网络对抗》Web安全基础实践

    20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...

  3. 20145239杜文超《网络对抗》- Web安全基础实践

    20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...

  4. 网络对抗 Exp9 Web安全基础 20154311 王卓然

    Exp9 Web安全基础 1. 实验内容 理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 2.实验步骤 WebGoat WebGoat是OWASP组织研制出的用于进行web漏洞实验的应 ...

  5. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  6. 20145209刘一阳《网络对抗》Exp9 Web安全基础实践

    20145209刘一阳<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...

  7. Exp9 Web安全基础实践 20164323段钊阳

    网络对抗技术 20164323 Exp9 Web安全基础实践 回答问题 (1)SQL注入攻击原理,如何防御 原理:通过在用户名.密码登输入框中输入特殊字符,在处理字符串与sql语句拼接过程中实现引号闭 ...

  8. EXP9 web安全基础实践

    <网络对抗>Exp9 Web安全基础实践 WXP2 后门原理 一.基础问题回答 1.SQL注入原理,如何防御 SQL注入原理: 就是通过把SQL命令插入到"Web表单递交&quo ...

  9. 《网络攻防》Web安全基础实践

    20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...

  10. 20164305徐广皓 - Exp1 PC平台逆向破解(5)M

    1.逆向及Bof基础实践说明        1.1实践目标 实践对象:pwn1的linux可执行文件 实践目的:使程序执行另一个代码(ShellCode) 实践内容: 手工修改可执行文件,改变程序执行 ...

最新文章

  1. colorAccent,colorPrimary,colorPrimaryDark 作用的地方
  2. (转)Apache Commons工具集简介
  3. 【Guava】使用Guava的RateLimiter做限流
  4. cocos2dx 坐标系统详解
  5. uva 10003——Cutting Sticks
  6. 图像处理自相关函数c语言,图像处理实验书.docx
  7. 高级排序求逆序数之分治法
  8. 中国女子高尔夫球场市场趋势报告、技术动态创新及市场预测
  9. 模拟集成电路学习心得(不见牛人,不懂世界之大!!!)
  10. Python Tricks(七)—— 使用 list 仿真先入先出的队列(FIFOQueue)
  11. 构建机器学习系统的20个经验教训
  12. 巧妙的使用RDP报表工具(免费报表工具、报表设计器)Excl绘制报表
  13. 【VHDL】VHDL设计一个分频器
  14. Windows和Linux下搭建J2sdk的环境
  15. 逆火软件测试工资,逆火刷机软件介绍和软件使用说明
  16. python画猫和老鼠代码_Python实现猫捉老鼠小游戏!虽然简陋但是童真永在!
  17. IBM X 345服务器无法从光驱启动配置解决方法——非常规方法
  18. 使用DistrbutedDataParallel时,nvdiai-smi显示每个进程都占用GPU:0
  19. 算法总结 — 并查集
  20. Windows-端口状态含义

热门文章

  1. android 考试倒计时,考试倒计时软件下载-考试倒计时v1.0 最新版-腾牛安卓网
  2. Python入门(10)——宝可梦数据集探索
  3. TESLA M40折腾笔记
  4. 用轻量服务器搭建自己的pdf在线工具箱(支持pdf压缩以及pdf OCR)
  5. Linux rm -rf 之rm: cannot remove `linux': Device or resource busy
  6. 小型项目程序 ERP——沙盘模拟
  7. 有关安全证书汇总及其科普
  8. Android P使用pm install安装apk报错
  9. EduCoder-Web程序设计基础 -web编程训练-html5-文档头部-第1关:页面标题及字符集的设置
  10. educoder:第3关:嵌套循环 - 跃迁能量表