20155337《网络对抗》Exp9 Web安全基础
实践目标
一、基础问题回答
1.实验后回答问题
- SQL注入攻击原理,如何防御
SQL注入攻击的本质是利用SQL语法,针对应用程序开发过程中的漏洞,从一个数据库获得未经授权的访问和直接检索
防御:采用sql语句预编译和绑定变量;严格检查参数的数据类型,使用安全函数;给用户信息加密
- 2.XSS攻击的原理,如何防御
是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚 本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。
防御:当恶意代码值被作为某一标签的内容显示:在不需要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符;当恶意代码被作为某一标签的属性显示,通过用 “将属性截断来开辟新的属性或恶意方法:属性本身存在的 单引号和双引号都需要进行转码;对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
- 3.CSRF攻击原理,如何防御
原理:
防御:通过 referer、token 或者 验证码 来检测用户提交;尽量不要在页面的链接中暴露用户隐私信息;对于用户修改删除等操作最好都使用post 操作 ;避免全站通用的cookie,严格设置cookie的域。
二、实验内容
WebGoat
在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。
当页面成功停在下图位置时,最小化终端窗口:
打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,选择默认账号、密码即可登陆成功。
XSS攻击
1、Phishing with XSS 跨站脚本钓鱼攻击
跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。这里实验的是一种获取用户名和密码的攻击
先编写一个包含用户名、密码的前端代码: