20145316《网络对抗》Exp9 Web安全基础实践学习总结
20145316《网络对抗》Exp9 Web安全基础实践学习总结
基础问题回答
SQL注入攻击原理,如何防御
- SQL注入,就是攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到让后台数据库执行恶意的SQL命令的目的,并根据程序返回的结果,获得某些攻击者想得知的数据。
防范:
- 1.检查变量数据类型和格式
- 2.过滤特殊符号
- 3.绑定变量,使用预编译语句
XSS攻击的原理,如何防御
- XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。理论上,所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞,漏洞的危害取决于攻击代码的威力,攻击代码也不局限于script。
防范:只要我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。XSS防御有如下方式————完善的过滤体系、Html encode。
CSRF攻击原理,如何防御
- CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。通过伪装受信任用户的请求利用受信任网站,利用用户在可信网站上没有登出的COOKIE做恶意操作
防范:
- 1.通过 referer、token 或者 验证码 来检测用户提交。
- 2.尽量不要在页面的链接中暴露用户隐私信息。
- 3.对于用户修改删除等操作最好都使用post 操作 。
- 4.避免全站通用的cookie,严格设置cookie的域。
实验总结与体会
本次实验非常有趣,不同于以往在虚拟机内操作的实验,在webgoat网站上做实验有一种“闯关”解题的快感,一次性学会了很多攻击方法。也掌握了Berpsuite等工具的使用方法。最后一次实验,完美收官。
实验过程
- 先开启webgoat,等待加载。

- 当出现下面这张图所示情景时
Starting ProtocolHandler,说明开启成功

在浏览器中访问
localhost:8080/WebGoat,用默认用户名密码登陆即可

1.Stored XSS Attacks
- 这个实验的意思是存储型XSS攻击,通过输入代码使用户访问时弹出非预期的内容
- 在title框中输入
<script>alert("silly human!This is 20145316!");</script> 点击submit,窗口弹出,攻击成功

2.Reflected XSS Attacks
- 类似上一个实验,是个买东西的页面,在code框中输入
<script>alert("this is 5316,I'm rich");</script> 弹出窗口,攻击成功

3.Cross Site Request Forgery(CSRF)
- 这个实验的目的是通过邮件的方式伪造一个转账请求,查看右侧参数栏内参数

- 在文本框中提交一个有URL恶意请求的代码,
<iframe src="attack?Screen=题中给出的scr&menu=题中给出的menu&transferFunds=转账金额"></iframe> 攻击成功

4.CSRF Prompt By-Pass
- 比上个实验多了一个“确认请求”,所以需要增加一行代码,如下

攻击成功,两个请求内容都有

5.Phishing with XSS
- 该实验的目的是读取登录用户的用户名和密码。首先输入编辑的钓鱼网站代码(XSS攻击代码)

- 代码如下,参考了蔡野同学的博客

- 在搜索框中输入攻击代码后点击搜索,会看到一个要求输入用户名密码的表单如下,输入用户名密码点击login

WebGoat会将输入的信息捕获并反馈回来,攻击成功

6.Numeric SQL Injection
- 题目大意是这个表单允许使用者看到天气数据,利用SQL注入使得可以看见所有数据
- 这里要利用到代理berpsuite来对网页内容进行篡改,具体过程周岐浩同学博客写的很清楚,下面是我的操作过程图






攻击成功

7.String SQL Injection
- 这个题目是让大家使用SQL注入让所有的信用卡号都看得见
- 先尝试一个输入,根据结果来找到我们要进行SQL注入的位置

在文本框中输入
' or 1=1 --进行攻击,成功

8.Log Spoofing
- 该实验是在代码中加入用户名admin迷惑用户,当用户登陆的时候登录失败,但以为自己登陆成功了。
- 在user name 处写入代码
20145316%0d%0aLogin Succeed!%0d%0aUsername: admin 攻击成功

9.LAB:SQL Injection(Stage 1 String SQL Injection)
- 使用admin账户Neville登陆
- 首先在密码栏中输入
' or 1=1 --进行永真式SQL注入,但是登录失败 - 查看网页代码发现弑密码长度设置太短,将密码长度修长

再次输入
' or 1=1 --,成功

10.LAB:SQL Injection(Stage 3:Numeric SQL Injection)
- 登陆使用employee账号Larry登陆
- 首先做上一个实验修改密码限制长度的操作
- 点击
ViewProfile,发现并没有办法使老板排在最前面

- 更改网页代码,将
ViewProfile参数改成如下

再次
' or 1=1 --登陆,成功

记录


20145316《网络对抗》Exp9 Web安全基础实践学习总结的更多相关文章
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 20155326《网络对抗》Web安全基础实践
20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...
- 20145308 《网络对抗》Web安全基础实践 学习总结
20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...
- 20145315何佳蕾《网络对抗》Web安全基础
20145315何佳蕾<网络对抗>Web安全基础 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页 ...
- 20145326蔡馨熤《网络对抗》—— Web安全基础实践
20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...
- 20155206《网络对抗》Web安全基础实践
20155206<网络对抗>Web安全基础实践 实验后问题回答 (1)SQL注入攻击原理,如何防御 攻击原理:SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20155305《网络对抗》Web安全基础实践
20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155307《网络对抗》Web安全基础实践
20155307<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155311《网络对抗》Web安全基础实践
20155311<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
随机推荐
- yii---获取当前sql语句
我们在用YII开发项目的时候,会查看当前执行的SQL语句来排查错误,那么YII该如何获取当前的SQL语句呢? $list = user::find()->where(['title'=>$ ...
- tomcat内存溢出:PermGen space解决方法
最近集群服务器中的几台服务器在半夜自动重启tomcat后一段时间便都会报java.lang.OutOfMemoryError: PermGen space. 习惯性的百度,得到的答案基本上都是统一的解 ...
- 8.23 js
2018-8-23 15:12:05 js 参考 :https://www.cnblogs.com/liwenzhou/p/8011504.html 2018-8-23 20:56:29 上面js的东 ...
- UVM phase的用法研究【zz】
原文地址:http://bbs.eetop.cn/viewthread.php?tid=383872&extra=&authorid=828160&page=1 我相信很多朋友 ...
- 《机器学习实战》中的splitDataSet函数
splitDataSet这个函数困扰了我好一阵子,为什么以某一特征值为标准进行划分数据集以后,变成了局部?例如,如果以第1个特征为0为标准进行划分,那么返回的结果集就是不含有此特征的结果集,如下图红框 ...
- hihocoder 1334 - Word Construction - [hiho一下第170周][状态压缩+DFS]
题目链接:https://hihocoder.com/problemset/problem/1334 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given N wo ...
- sklearn学习总结(超全面)
https://blog.csdn.net/fuqiuai/article/details/79495865 前言sklearn想必不用我多介绍了,一句话,她是机器学习领域中最知名的python模块之 ...
- SPARQL 入门教程
1.准备工作 1.1 下载ZIP 1.2 配置环境变量 1.3 查询文件 vc-db-1.rdf 2. 查询操作 2.1 普通查询 /** * 查询family为"Smith"的 ...
- paas平台
paas平台 定义:PaaS是云计算中重要的一类服务,为用户提供应用的全生命周期管理和相关的资源服务.通过PaaS,用户可以完成应用的构建.部署.运维管理,而不需要自己去搭建计算环境,如安装服务器.操 ...
- 匿名内部类的参数引用只能是final,可能遇到的问题及其解决
这个是我碰到比较多次的问题,一开始是不解,不过查了下大家都觉得没什么,而且只是加个final好像影响也不大,于是我就直接加个final了事,之后也不管了 直到昨天: 遇到了这个宿命般的问题 难道解决方 ...