WebGoat -- AJAX Security

0xx3 AJAX Security(Ajax安全性)

  1. Same Origin Policy Protection(同源政策保护)

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

lessons/Ajax/sameOrigin.jsp

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

WebGoat -- AJAX Security_第1张图片

 

  1. LAB: DOM-Based cross-site scripting(实验室:基于DOM的跨站点脚本)
  1. 第一阶段,尝试在输入框输入
  2. 第二阶段,尝试使用images标签创建JavaScript警报(加载图片出现事故,就会触发onerror事件)

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

  1. 第四阶段,使用一下命令创建假的登陆表单(复制即可)
  2. 第五阶段,将DOMXSS.js改为下图

WebGoat -- AJAX Security_第2张图片

  1. LAB: Client Side Filtering(实验室:客户端过滤)
    1. 第一阶段,查找大BOSS,Neville Bartholomew的工资,按F12,打开网页调试,经过好一番寻找,终于在选择用户的下拉框附近找到一个隐藏的div,如图

WebGoat -- AJAX Security_第3张图片

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

WebGoat -- AJAX Security_第4张图片

  1. DOM Injection(DOM注入)

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

大概的思路是修改提交按钮的让其取消隐藏,百度了无数种方法,依然失败,最后灵光一现,进入网页的调试模式,手动删掉了disabled=””,成功通关

 

  1. XML Injection(XML注入)

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

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

WebGoat -- AJAX Security_第5张图片

WebGoat -- AJAX Security_第6张图片

 

  1. JSON Injection(JSON注入)

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

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

WebGoat -- AJAX Security_第7张图片

WebGoat -- AJAX Security_第8张图片

 

  1. Silent Transactions Attacks(无声交易攻击)

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

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

WebGoat -- AJAX Security_第9张图片

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

成功

WebGoat -- AJAX Security_第10张图片

  1. Dangerous Use of Eval(危险使用Eval)

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

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

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

服务端返回的结果为

eval(‘123’);

alert(document.cookie);

(‘’)

WebGoat -- AJAX Security_第11张图片

  1. Insecure Client Storage(不安全的客户端存储)
    1. 寻找优惠券代码

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

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

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

WebGoat -- AJAX Security_第12张图片

WebGoat -- AJAX Security_第13张图片

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

WebGoat -- AJAX Security_第14张图片

成功

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

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

WebGoat -- AJAX Security_第15张图片

成功

你可能感兴趣的:(OWASP)