2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

1. 实验目的

理解常用网络攻击技术的基本原理,做不少于7个题目。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。

2. 实验内容

由于主机的Windows操作系统已经安装了java,所以这次没有使用kali,而是使用的Windows 10。使用的WebGoat版本为8.0.0

2.1. WEBGOAT安装

1.在这里下载最新版的WebGoat。(迅雷下载比较快。我没有打广告!)

2.请确认已经配置好了java环境。最新版的WebGoat要求Java 11及以上的版本。Java环境配置相关问题请百度/360/Bing/好搜等。

3.使用java -jar webgoat-server-8.0.0.M26.jar --server.port=8080 --server.address=localhost启动WebGoat。请根据实际修改文件名、端口、ip地址。(这里出现了错误,解决方法请见 实验中遇到的问题

2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

4.WebGoat启动后,在浏览器中输入http://localhost:8080/WebGoat使用WebGoat。

2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

5.点击Register new user,新建一个用户,即可开始使用。

2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

2.2. SQL注入攻击

2.2.1. 字符串型SQL注入

原理:当SQL注入输入的参数为字符串时称为字符串型注入。

目标:获取Users表中的所有信息。

方法:

1.点击左侧菜单中的"(A1) Injection",然后点击"SQL Injection (intro)",进入第9步。

2.将页面下方的下拉框分别设为or‘1‘=‘1,这样拼接后的SQL语句为:SELECT * FROM user_data WHERE first_name = ‘John‘ AND last_name = ‘ ‘ or ‘1‘ = ‘1‘,因为‘1‘=‘1‘永远为真,所以where后的条件总是为true。

3.点击“Get Account Info”,可以获取到用户信息。

2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

2.2.2. 数字型SQL注入

原理:在SQL语句中注入数字,组合成具有其他功能的字符串。

目标:提取出Users表中的所有信息。

方法:

1.点击左侧菜单中的"(A1) Injection",然后点击"SQL Injection (intro)",进入第10步。

2.在Login_Count中输入任意数字,在User_Id中输入任意数字 or true,这样拼接后的SQL语句为:SELECT * From user_data WHERE Login_Count = 数字 and userid= 数字 or true,where后的条件总是为true。

2.2.3. Pulling data from other tables

原理:综合利用字符型、数字型注入、SQL查询语句,构造SQL注入语句实施攻击。

目标:1. 获取user_system_data表中的所有信息 2. 找出Dave的密码

方法:

1.点击左侧菜单中的"(A1) Injection",然后点击"SQL Injection (advanced)",进入第3步。

2.此次是需要从一张表的中查询出另一张表中的数据,可以使用Union语句。在Name中输入‘ or true union select userid, user_name, password,‘4‘,‘5‘, ‘6‘, 7 from user_system_data where ‘1‘ =‘1,拼接后的语句为:SELECT * FROM user_data WHERE last_name = ‘ ‘ or true union select userid, user_name, password,‘4‘,‘5‘, ‘6‘, 7 from user_system_data where ‘1‘ =‘1‘。可以查询出Dave的密码。

3.在Password中输入刚才得到的密码,点击Check Password即可通关。

2.3. XSS攻击

2.3.1. 基于反射的XSS攻击(Reflected XSS)

原理:依靠站点服务端返回脚本,使客户端执行从而发起Web攻击。

目的:使用XSS攻击找出表单中的哪个字段可以被攻击。

方法:

1.点击左侧菜单中的"(A7)Cross Site Scripting(XSS)",然后点击"Cross Site Scripting",进入第7步。

2.点击Purchase,页面下方显示了我们输入的卡号,推测这里可以使用XSS攻击。

3.在输入卡号的输入框中输入<script>alert("This is 20174317‘s attack! suprise!");</script>,点击Purchase即可看到攻击的效果。(可还是不算通过,不知道为什么)

2.3.2. 基于DOM的XSS攻击(DOM-Based XSS)

原理:

目的:使用"start.mvc#test/"这个测试路由,执行Webgoat自带的函数"webgoat.customjs.phoneHome()"。

方法:

1.点击左侧菜单中的"(A7)Cross Site Scripting(XSS)",然后点击"Cross Site Scripting",进入第11步。

2."start.mvc#test/"路由后面跟的内容会被作为进行参数解析,所以直接在"start.mvc#test/"后加上"webgoat.customjs.phoneHome()"即可,组合之后为如下内容:http://localhost:8080/WebGoat/start.mvc#test/<script>webgoat.customjs.phoneHome()

3.在新页面中打开以上网址,打开控制台,可以看到执行的结果,是一个随机数,将随机数输入到输入框中,点击Submit即可。

2.4. CSRF攻击

3. 基础问题回答

4. 实验中遇到的问题

2019-2020-2 20174317祝源《网络对抗技术》Exp9 Web安全基础

上一篇:Node.js ArrayBuffer 转为字符串


下一篇:vue-resource.js POST提交后返回主键,赋值成功后控件里的值却不改变(已解决)