本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。
webGoat需要Java SE8的支持,版本不匹配那么浏览器的菜单栏中会缺失很多内容
在官网下载jdk-8u251-linux-x64.tar.gz
,并参考链接进行环境配置,配置好截图如下:
下载webgoat-container-7.0.1-war-exec.jar
。
在命令行输入java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat
,等待一小会后出现如下提示则运行成功。
http://localhost:8080/WebGoat
进入WebGoat登录界面
Injection Flaws
,展开页面中选择Command Injection
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在复选框中对应位置第一个option的代码,双击进行修改,添加"& netstat -an & ipconfig"。 view
,可以看到执行指令后的网络端口使用情况和IP地址。SELECT * FROM weather_data WHERE station = [station]
在菜单栏中选择Injection Flaws
,展开页面中选择Numeric SQL Injection
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1
点击Go!
即可显示所有城市的天气情况。
前提:本题目接受用户输入的任何一个用户名,并将其追加到日志文件中。
在菜单栏中选择Injection Flaws
,展开页面中选择Log Spoofing
利用入回车(0D%)和换行符(%0A),在 username 中填入shn%0d%0aLogin Succeeded for username: admin
,
攻击者可以利用这种方式向日志文件中添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到。比如,将admin <script>alert(document.cookie)</script>
作为用户名输入,可以看到弹窗的cookie信息。
在菜单栏中选择Injection Flaws
,展开页面中选择LAB: SQL Injection
,展开页面中选择String SQL Injection
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,将password密码框的最大长度限制改为18。
以用户Neville(admit)
登录,输入密码hello‘ or ‘1‘ = ‘1
可以进行欺骗,以最高权限进行登录,获取到所有人员列表
在菜单栏中选择Injection Flaws
,展开页面中选择LAB: SQL Injection
,展开页面中选择Numeric SQL Injection
使用用户名 Larry,密码 larry 登录,点击ViewProfile
查看用户信息
右键点击页面,选择inspect Element
审查网页元素源代码,我们可以看到数据库索引的依据是员工ID,推测返回的是每次查询到的第一条数据。
老板应该是工资最高的,所以将员工ID的value改成101 or 1=1 order by salary desc
,使得Boss的信息作为查询到的第一条数据(始终是最高的)。
更改后再次点击ViewProfile
,即可查询到最高纪录的结果
Cross‐Site Scripting
,展开页面中选择Stored XSS Attacks
<script>alert("I am 20175232. You‘ve been attacked!!!");</script>
<img src="https://www.mybank.com/me?transferFunds=5000&to=123456"/>
,当受害者的浏览器试图呈现此页面时,它将使用指定的参数向www.mybank.com的“me”端点发出请求。浏览器将请求链接以获得图像,即使它实际上是一个资金转移功能。提交请求时,浏览器将添加与站点相关的所有cookie。因此,如果用户对站点进行了身份验证,并且拥有永久或当前会话cookie,那么站点将无法将其与合法的用户请求区分开来。通过这种方式,攻击者可以让受害者执行他们不打算执行的操作,比如“购买物品”,或者脆弱网站提供的任何其他功能。在菜单栏中选择Cross‐Site Scripting
,展开页面中选择Cross Site Request Forgery (CSRF)
查看页面右侧Parameters中的src和menu值,分别为331和900
在title中输入任何参数(学号),message框中输入<img src="http://localhost:8080/WebGoat/attack?Screen=331&menu=900&transferFunds=5000" width="1" height="1" />
,以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的(宽高设置成1像素的目的是隐藏该图片),用户一旦点击图片,就会触发一个CSRF事件,点击Submit提交。
在Message List中生成以Title命名的消息。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。
三、实验问题回答及心得
原理:
‘,--,#
这些特殊字符防御:
原理:
防御:
原理:
防御:
2019-2020-2 网络对抗技术 20175232 司浩楠 Exp9 Web安全基础
原文:https://www.cnblogs.com/20175232-gouli/p/12968504.html