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

释放双眼,带上耳机,听听看~!

Ms08067安全实验室CTF小组成员招募

本文作者:jaivy(MS08067实验室合伙人 & CTF小组组长) 引言 近几年,国内的CTF赛事热度逐渐升温。越来越多的人开始渐渐关注这一新兴赛事,越来越多的人聚集在一起交流技术。CTF的意义已经不仅仅局限于比赛,更多的是思维的切磋和技术的较量。在这个CTF盛行

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框框中输入以下网址(也可以直接点击下方链接),观察发现,只能访问同一数据资源,非同源访问失败。

:

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改为下图


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

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

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

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

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


0x03  DOM Injection(DOM注入)

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

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


0x04  XML Injection(XML注入)

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

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

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


0x05  JSON Injection(JSON注入)

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

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

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


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

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

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

SSRF漏洞利用与getshell实战(精选)

什么是SSRF? SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,利用服务器端发起的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务器端发起的,所以服务器能请求到与自身相连而外网隔离的

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

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

成功


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

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

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

 

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

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

123′);alert(document.cookie);(‘

服务端返回的结果为

eval(‘123’);

alert(document.cookie);

(‘’)


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

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

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

1.寻找优惠券代码

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

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

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

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

成功


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

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

成功

作者:小英雄宋人头


来源:Ms08067安全实验室


往期回顾


1.WebGoat靶场系列—WebGoat安装

2.WebGoat靶场系列—General

3.【HTB系列】靶机Access的渗透测试详解

界世的你当

作你的肩膀



 ms08067安全实验室

本文源自微信公众号:Ms08067安全实验室

LaZagne — 一键抓取目标机器上的所有明文密码

本文作者:Snowming LaZagne 介绍 功能 LaZagne 是用于获取存储在本地计算机上的大量密码的开源应用程序。 每个软件都使用不同的技术(纯文本、API、自定义算法、数据库等)存储其密码。LaZagne 的作用就是找到最常用的一些软件的密码。 LaZagne 几乎支持市面

人已赞赏
安全工具

推荐几个安全类的公众号

2019-10-14 20:17:24

安全工具

SSRF漏洞利用与getshell实战(精选)

2019-10-14 20:17:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索