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注入攻击原理,如何 ...
随机推荐
- Centos7:solr伪集群(SolrCloud)搭建
JDK,tocmat环境搭建 zookeeper集群安装 解压缩zookeeper的压缩包 创建data目录 复制zoo_sample.cfg为zoo.cfg 修改confg/zoo.cfg中 dat ...
- mybatis sql语句中 in() 长度为0或null的情况
mybatis sql语句中 in() 长度为0或null的情况 比如: select * from A where colName IN <foreach collection="m ...
- 如果在docker中部署tomcat,并且部署java应用程序
1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...
- 《python解释器源码剖析》第4章--python中的list对象
4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...
- Ubuntu18.04安装 NVIDIA驱动
Ubuntu18.04安装 NVIDIA驱动 参考自博客:https://blog.csdn.net/jsjason1/article/details/88086904 我确定这篇文章是否很有必要,我 ...
- Ubuntu 18.04 手动升级内核
一般情况下,系统正常更新,会自动升级内核到可用的最新版. 查看已安装的内核 $ sudo dpkg -l | grep linux-image 查看当前使用的内核 $ sudo uname -r 查看 ...
- C - Nuske vs Phantom Thnook
题意:n*m矩阵,n,m<=2e3,矩阵中的1能走到相邻4个1上,0代表障碍,若两个1联通 则只有一条路径 q个询问,q<=2e5,每次询问一个子矩阵中有多少个连通分量? 同一个连通分量中 ...
- libusb_submit_transfer 异步通信libusb
https://bbs.csdn.net/topics/391012708?list=lz
- 记一下拷贝windows下文件到linux下的方法
去官网下载的Putty中包含了如下文件: 其中pscp.exe是一个远程复制文件的工具. 官网:https://www.chiark.greenend.org.uk/~sgtatham/putty/l ...
- 【wqs二分 || 决策单调性】cf321E. Ciel and Gondolas
把状态看成层,每层决策单调性处理 题目描述 题目大意 众所周知,贞鱼是一种高智商水生动物.不过他们到了陆地上智商会减半.这不?他们遇到了大麻烦!n只贞鱼到陆地上乘车,现在有k辆汽车可以租用.由于贞鱼们 ...