20165213 Exp9 Web安全基础
Exp9 Web安全基础
一.基础性问答
(1)SQL注入攻击原理,如何防御
原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
防御:
- 普通用户与系统管理员用户的权限要有严格的区分。
- 强迫使用参数化语句。
- 多多使用SQL Server数据库自带的安全参数。
加强对用户输入的验证。
(2)XSS攻击的原理,如何防御
原理:Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
防御:唯一能完全杜绝xss攻击的方法,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些方法预防xss攻击,尽量减少xss造成的危害。
(3)CSRF攻击原理,如何防御
原理:依靠用户标识危害网站,利用网站对用户标识的信任,欺骗用户的浏览器发送HTTP请求给目标站点,另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。
防御:
- 通过 referer、token 或者 验证码 来检测用户提交。
- 尽量不要在页面的链接中暴露用户隐私信息。
- 对于用户修改删除等操作最好都使用post 操作 。
- 避免全站通用的cookie,严格设置cookie的域。
二、实验过程记录
实验准备:下载WebGoat,我下载的是8.0的版本,此处为下载的链接https://github.com/WebGoat/WebGoat/releases,在主机中下载完成后,拷贝到kali共享文件夹中后,在kali中输入命令,java -jar webgoat-server-8.0.0.M25.jar,成功启动后,在浏览器中输入localhost:8080/WebGoat进入界面,注册账户后登陆,即可开始做题。

sql注入题1
利用逻辑上的漏洞,题目要求是在不知道任何明确的用户姓名情况下,获得一份完整的列表,因此select * from user_data where first_name ='John' and last_name =''or '1' ='1',成功。

因为 or ‘1’ =‘1’是永真式,所以sql语句等价于or ture,。
sql注入题2(数字)
要求使用两个输入框,获得用户表的所有数据,只有一个框可以使用sql注入。
在第一个Login_Count框中输入任意字符,在User_id中输入任意字符+ or 1=1 --
由于不同数据库设计的注释符号不一样,有的是使用#,有的是使用--需要自己去尝试。


sql注入题3(字符)
你是一个叫约翰·史密斯的雇员,在一家大公司工作。公司有一个内部系统,允许所有员工查看自己的内部数据,比如他们工作的部门和薪水。
系统要求员工使用唯一的认证TAN来查看他们的数据。
你现在的肤色是3sl99a。
因为你总是渴望成为最有收入的员工,所以你想利用这个系统,而不是查看你自己的内部数据。看看你所有同事的数据,看看他们目前的薪水。
使用下面的表单,尝试从Employees表中检索所有员工数据。您不需要知道任何特定的名称或TAN来获得所需的信息。
您已经发现执行请求的查询看起来像这样
由于在上周的实验中做过类似的sql注入了,因此此题十分轻松。

用注释符号注释掉后面的内容,再加上or 1=1使得该式子成为永真式。
xss题1
要求再打开一个标签页,使用当前页面的url或者WebGoat登陆后的url,在后面添加javascript:alert(document.cookie);观察弹出的信息。


由于cookie的功能是获得当前的session号,由于是同一账号登陆,所以相同,填yes通过。

xss题2
下面的页面模拟评论/评论页面。这里的区别在于,您必须在其他地方启动提交,就像在CSRF攻击中一样,和前面的练习一样。在大多数情况下,棘手的部分是找到要执行CSRF攻击的某个地方。在大多数情况下,更棘手的部分是找到要执行CSRF攻击的地方。典型的例子是某人银行账户中的账户/电汇。
但我们在这里保持简单。在这种情况下,您只需要代表当前登录的用户触发一个审查提交。
因此我在每个框中都尝试了xss攻击,发现卡号那一栏最容易收到攻击。

csrf题1
这一题为获得flag数字的题,点击按钮后会发现flag出的值为null,因此吧false改成,true后刷新,得到flag的值,通过此题。


csrf题2
下面的页面模拟评论/评论页面。这里的区别在于,您必须在其他地方启动提交,就像在CSRF攻击中一样,和前面的练习一样。比你想象的容易。在大多数情况下,更棘手的部分是找到要执行CSRF攻击的地方。典型的例子是某人银行账户中的账户/电汇。
但我们在这里保持简单。在这种情况下,您只需要代表当前登录的用户触发一个审查提交。
在输入信息时反馈:消息发送给自己的主机,于是启动burpsuit,修改自己自己名称为127.0.0.1:9090,刷新揭秘那后成功。


总结
通过WebGoat这个工具使我掌握了一部分网站攻击的方法,而且其中还是其他许多的攻击方法,我觉得抽出空余时间来使用WebGoat学习,也不失为一个好点子。
20165213 Exp9 Web安全基础的更多相关文章
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
- 20155312 张竞予 Exp9 Web安全基础
Exp9 Web安全基础 目录 基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 实践过程记录 WebGoat准备工作 1.XSS攻 ...
- Exp9 Web安全基础
Exp9 Web安全基础 20154305 齐帅 一.实验要求 本实践的目标理解常用网络攻击技术的基本原理. Webgoat实践下相关实验: [目录] [第一部分 WebGoat 8.0] 1.Web ...
- 20155205 郝博雅 Exp9 Web安全基础
20155205 郝博雅 Exp9 Web安全基础 一.实验内容 一共做了13个题目. 1.WebGoat 输入java -jar webgoat-container-7.1-exec.jar 在浏览 ...
- 20155339 Exp9 Web安全基础
Exp9 Web安全基础 基础问题回答 (1)SQL注入攻击原理,如何防御 原理:它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到 ...
- 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础
2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...
- 20145236《网络对抗》Exp9 web安全基础实践
20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- 20145215《网络对抗》Exp9 Web安全基础实践
20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
随机推荐
- Excel学习笔记:行列转换
目录 offset函数 行列转换的三种方式 1.右键转置 2.转置公式TRANSPOSE 3.引用函数OFFSET+ROWS/COLUMN(支持随时更新数据) 一行(列)转多行多列 offset函数 ...
- logback替换log4j
1.新建logback.xml放在src目录下(放在src下会自动加载,不需要再web.xml配置) 2.引入必要的jar包:
- Html-自适应
自适应 使网页能适应不同终端设备的技术.原理是通过检测视口分辨率来判断是什么终端的,PC,手机还是平板. 做自适应的网页时,需要在代码中加入“祖传代码”,即通用代码. 这是在头部head引入的: &l ...
- redis的使用(Java使用Jedis客户端连接redis)
一.添加依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...
- 平时工作常用linux命令总结
mkdir 创建目录 make dir cp 拷贝文件 copy mv 移动文件 move rm 删除文件 remove # 创建连级目录 mkdir -p a/b/c # 拷贝文件夹a到文 ...
- odoo xml中添加数据的数字代表含义
参考原文:https://alanhou.org/odoo12-import-export-data/ <?xml version="1.0"?> <odoo n ...
- 【异常】update更新java.sql.SQLException: Duplicate entry '2019-07-30 00:00:00-110100' for key
1 详细异常信息 User class threw exception: java.sql.SQLException: Duplicate entry '2019-07-30 00:00:00-110 ...
- mybatic进阶遗留
参考文章: MyBatis的架构设计以及实例分析 MyBatis缓存机制的设计与实现 MyBatis的一级缓存实现详解 及使用注意事项 MyBatis的二级缓存的设计原理
- JAVA WEB之Servlet使用
3. JSP提交数据和Servlet程序设计 想要将JSP数据提交,主要的方法有form表单方式.url方式和Session方式.将JSP数据传递给后台,form表单显然比较简单方便. 正如上一节中展 ...
- 服务器syns to listen sockets drop导致创建socket失败
在一次测试执行过程中,发现服务器TCP发送队列较长,执行netstat -s | grep LISTEN,发现有SYNs包被丢弃,但是没有times the listen queue of a soc ...