WebGoat系列实验AJAX Security

WebGoat系列实验AJAX Security

DOM Injiction

  1. 实验对象是一个接受激活密钥后允许你访问的系统,实验目标是尝试将激活按钮变得可以点击。
  2. 直接修改页面代码激活按钮,Chrome浏览器下F12查看网页源代码,找到按钮对应的代码
<input disabled="" id="SUBMIT" value="Activate!" name="SUBMIT" type="SUBMIT">

那一行,将disabled删除,就可以点击激活按钮了。image

LAB: DOM-Based cross-site scripting

  1. 实验需要使用指定图片涂改网站。在输入框中输入字符串,网站会发送Ajax请求并显示“Hello,[字符串]!”。image
  2. 尝试输入字符串如下:,结果在字符串的位置显示了图片,说明该网页存在有基于DOM的跨站脚本。image
  3. 尝试使用image标签创建一个JavaScript警告。在输入框中输入<img src = "" onerror = ;alert("XSS!")>,页面会弹出一个警告。image
  4. 尝试使用iframe标签创建一个JavaScript警告。在输入框中输入,页面弹出了一个警告。image

LAB: Client Side Filtering

STAGE 1

  1. 作为Goat Hills Financial的CSO Moe Stooge登录,可以获取除了CEO Neville Bartholomew的公司所有人的信息。需要获取Neville Bartholomew的薪水。
  2. 查看网页源代码,在id为hiddenEmployeeRecords的table中发现了NB的薪水。image
  3. 还可以重新加载网页,之后使用Burp代理拦截服务器的响应报文,随便选择一个员工查看个人信息,就可以拦截到服务器返回的所有人的薪水。image

XML Injection

  1. 输入账户ID,网页将会显示可以购买的项目。目标是获取应得奖励之外的更多的奖励,需要使用836239作为账户ID。
  2. 使用Burp拦截服务器的响应报文,输入836239,点击Submit按钮,可以获取到从服务器返回的应得奖励。image
  3. 按照奖励xml文件的格式,在拦截报文中添加其他奖励。image
  4. 释放修改后的服务器响应报文,在页面中出现的可以获得的其他奖励,将所有的奖励勾选之后,点击提交通过。image

JSON Injection

  1. 输入3位的机场代码,一个AJax请求会执行查询票价功能。目标是以更低的价格乘坐直飞的航班。
  2. 使用Burp拦截报文,在输入框中输入两个机场代码之后,截取到查询价格的报文。分析报文内容可知,并不包含价格的信息,放行报文。image
  3. 在候选的两个航班中选择直飞的航班,点击提交之后会截取到报文,里面包含有价格参数,%24为$符号的十六进制编码,实际价格是600。修改为低于600的数值。image

Silent Transactions Attacks

  1. 如果web应用允许提交简单的URL,那么就会有攻击者在用户未授权的情况下完成交易。这种攻击在AJAX中更加严重,交易不会在页面上给予用户反馈。
  2. 在实验的银行转账系统中,通过输入用户名与转账金额可以完成转账交易。image
  3. 通过查询网页源代码,发现控制转账的函数submitData(accountNo,balance)位于silentTransaction.js的脚本中。imageimage
  4. 在浏览器中输入javascript:submitData(123,10000),即可完成静默转账。

Insecure Client Storage

STAGE1

  1. 实验需要找出本次购物需要使用的优惠码。image
  2. 查看网页源代码,发现了用于检查优惠码的脚本。image
  3. 源代码中包含了用于检查优惠码是否有效的函数isValidCoupon(coupon)。image
  4. 在clientSideValidation.js脚本文件开头找到了用于函数isValidCoupon(coupon)的参数。image
  5. 在浏览器的地址栏中输入javascript:alert(decrypt("nvojubmq")),弹窗显示了优惠码,通过。image

STAGE2

  1. STAGE2需要免费购物,使用Burp修改GET请求报文将最终价格修改为0。

Dangerous Use of Eval

  1. 实验需要包含有脚本的输入,尝试让网页反馈你在浏览器中的输入,必须使用alert()函数输出document.cookie。
  2. 点击Purchase按钮,根据弹窗的内容,尝试在digit access code的位置进行XSS注入攻击。image
  3. 输入123');alert(document.cookie)😭',点击Purchase按钮,通过实验。
posted @ 2017-09-15 09:06  燕麦粥  阅读(804)  评论(0编辑  收藏  举报