WebGoat靶场系列---AJAX Security(Ajax安全性)

Posted Ms08067安全实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebGoat靶场系列---AJAX Security(Ajax安全性)相关的知识,希望对你有一定的参考价值。

Ajax ” Asynchronous javascript And XML”(异步 JavaScript XML),是指一种创建交互式网页应用的网页开发技术

Ajax = 异步 JavaScript  XML 或者是 html(标准通用标记语言的子集

Ajax 是一种用于创建快速动态网页的技术

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新


基于AJAXWeb攻击包括:中间人攻击,动态脚本执行,Json攻击,非信任源服务器的非法访问。

 

0x00  Same Origin Policy Protection(同源政策保护)

Ajax的一个关键元素是XMLHttpRequestXHR,它允许JavaScript从客户端到服务器进行异步调用.但是,作为一种安全措施,这些请求只能发送到产生客户机页面的服务器。

目标:这个练习演示了同一来源的政策保护.XHR请求只能传递回发起服务器.尝试将数据传递到非原始服务器将失败。

 依次向URL框框中输入以下网址(也可以直接点击下方链接),观察发现,只能访问同一数据资源,非同源访问失败。

WebGoat靶场系列---AJAX Security(Ajax安全性):

lessons/Ajax/sameOrigin.jsp

        http://www.google.com/search?q=aspect+security


0x01  LAB: DOM-Based cross-site scripting(实验室:基于DOM的跨站点脚本)

 文档对象模型(DOM)从安全性的角度提出了一个有趣的问题.它允许动态修改网页的内容,但在恶意代码注入期间,攻击者可能会滥用这些内容.XSS是一种恶意代码注入类型,当未经验证的用户输入直接用于修改客户端页面的内容时,可能会发生这种情况。

目标:使用此漏洞向DOM中注入恶意代码

a) 第一阶段,尝试在输入框输入<img src=”images/logos/owasp.jpg” />

b) 第二阶段,尝试使用images标签创建JavaScript警报(加载图片出现事故,就会触发onerror事件)

<img src=test onerror=”alert(‘this is xss test’)”>

c) 第三阶段尝试使用iframe标签创建JavaScript警报(iframe标签会创建一个包含另一个文档的内联框架)

<iframe src=javascript:alert(0)></iframe>

d) 第四阶段,使用一下命令创建假的登陆表单(复制即可)

e) 第五阶段,DOMXSS.js改为下图

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x02  LAB: Client Side Filtering(实验室:客户端过滤)

过多信息被发送到客户机,从而造成严重的访问控制问题

目标:利用服务器返回无关信息发现本不应该访问信息

1.第一阶段,查找大BOSS,Neville Bartholomew的工资,F12,打开网页调试,经过好一番寻找,终于在选择用户的下拉框附近找到一个隐藏的div,如图


WebGoat靶场系列---AJAX Security(Ajax安全性)

2.阶段二,修复此处漏洞,找到WebGoatlessons/Ajax/clientSideFiltering.jsp修改一下部分添加过滤器,授权只有管理人员才能查看其他人员信息。

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x03  DOM Injection(DOM注入)

 原理:一些应用程序特别是使用AJAX的应用程序使用javascriptDHTMLeval()方法直接操作和更新DOM.攻击者可以通过截取回复并尝试注入一些javascript命令来利用他的攻击来利用它

  尝试使提交按钮的隐藏取消,使用最简单暴力的方法,进入到浏览器开发者模式中,手动删掉了disabled=””,成功通关

WebGoat靶场系列---AJAX Security(Ajax安全性)

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x04  XML Injection(XML注入)

 原理:AJAX应用程序使用XML与服务器交换信息.恶意攻击者可以轻松拦截和更改此XML

 目标:尝试使自己获得更多的奖励

 基本思路大致和DOM注入类似,输入ID,通过抓包发现传入参数的规律,索性直接加上&check1004=on&check1005=on测试一下,结果一次通过

WebGoat靶场系列---AJAX Security(Ajax安全性)

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x05  JSON Injection(JSON注入)

原理: JavaScript Object NotationJSON)是一种简单有效的轻量级数据交换格式。JSON可以有很多形式,例如数组,列表,哈希表和其他数据结构.JSON广泛用于AJAXWeb2.0应用程序,并且由于其易用性和速度而受到程序员XML的青睐.但是,JSONXML一样容易受到注入攻击.恶意攻击者可以从服务器注入回复并在其中注入一些任意值

目标:两个航班A(无停靠,价格昂)B(停靠,价格便宜),获取到一个没有停靠,但是价格便宜的航班

首先,打开浏览器调试工具,定位到目标位置,将数值改小即可


WebGoat靶场系列---AJAX Security(Ajax安全性)

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x06  Silent Transactions Attacks(无声交易攻击)

原理: 任何使用单个提交静默处理事务的系统对客户端都是危险的,ajax直接与后台进行数据交互,发生在页面上没有用户反馈的情况下

目标:尝试绕过用户的授权,静默执行

在页面定位到提交按钮,发现,点击按钮触发processData()函数,通过页面搜索,找到这个函数的位置,可知,它用来判断输入,来与后台交互

WebGoat靶场系列---AJAX Security(Ajax安全性)

WebGoat靶场系列---AJAX Security(Ajax安全性)

而下方submitData()函数,则是提交结果,来吧processData()改成submitData(123,123)

WebGoat靶场系列---AJAX Security(Ajax安全性)

成功

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x07  Dangerous Use of Eval(危险使用Eval)

原理:未经验证的用户提供的数据与Javascript eval()调用一起使用.在反映的XSS攻击中,攻击者可以使用攻击脚本制作URL并将其存储在另一个网站上,通过电子邮件发送或以其他方式欺骗受害者点击它

目标:enter your three digit access code存在漏洞,这些输入将执行恶意脚本,要通过本课,您必须 alert()” document.cookie

 

观察,开发者选项中,可以找到eval.js,能存在eval漏洞


WebGoat靶场系列---AJAX Security(Ajax安全性)

enter your three digit access code中输入以下代代码然后提交即可完成: 

123');alert(document.cookie);('

服务端返回的结果为

eval(‘123’);

alert(document.cookie);

(‘’)

WebGoat靶场系列---AJAX Security(Ajax安全性)


0x08  Insecure Client Storage(不安全的客户端存储)

原理:验证机制留在客户端,客户端进行验证码等验证

目标:寻找优惠券的代码并利用客户端验证提交成本为0的订单。

1.寻找优惠券代码

定位到输入框的位置,发现,存在一个键盘事件,会使用AJAX后台检测输入,

WebGoat靶场系列---AJAX Security(Ajax安全性)

定位到form表单处,看到触发事件的位置是一个JS文件

WebGoat靶场系列---AJAX Security(Ajax安全性)

找到此文件的isValidCoupon(),有一个判断语句,大概就是判断优惠券代码对错的了

WebGoat靶场系列---AJAX Security(Ajax安全性)

WebGoat靶场系列---AJAX Security(Ajax安全性)

设置断点,然后随便输入一个数字,提交这东西貌似就是我们要找的,试一下

WebGoat靶场系列---AJAX Security(Ajax安全性)

成功

WebGoat靶场系列---AJAX Security(Ajax安全性)

2.尝试免费获取整个订单

将所有价格在页面改为0,然后输入数量


WebGoat靶场系列---AJAX Security(Ajax安全性)

成功

WebGoat靶场系列---AJAX Security(Ajax安全性)




WebGoat靶场系列---AJAX Security(Ajax安全性)


来源:Ms08067安全实验室


往期回顾

1.

2.

3.

WebGoat靶场系列---AJAX Security(Ajax安全性)


界世的你当

作你的肩膀


 ms08067安全实验室


以上是关于WebGoat靶场系列---AJAX Security(Ajax安全性)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA代码审计之WebGoat靶场SQL注入

1012.Web安全攻防靶场之WebGoat – 3

1006.Web安全攻防靶场之WebGoat – 2

WebGoat系列のAccess Control Flaws(访问控制缺陷)

json web token(JWT)绕过

DC-1靶场搭建及渗透实战详细过程(DC靶场系列)