WebGoat系列实验AJAX Security

DOM Injiction

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

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

LAB: DOM-Based cross-site scripting

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

LAB: Client Side Filtering

STAGE 1

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

XML Injection

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

JSON Injection

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

Silent Transactions Attacks

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

Insecure Client Storage

STAGE1

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

STAGE2

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

Dangerous Use of Eval

  1. 实验需要包含有脚本的输入,尝试让网页反馈你在浏览器中的输入,必须使用alert()函数输出document.cookie。
  2. 点击Purchase按钮,根据弹窗的内容,尝试在digit access code的位置进行XSS注入攻击。
  3. 输入123');alert(document.cookie)

    WebGoat系列实验AJAX Security的更多相关文章

    1. WebGoat系列实验Injection Flaws

      WebGoat系列实验Injection Flaws Numeric SQL Injection 下列表单允许用户查看天气信息,尝试注入SQL语句显示所有天气信息. 选择一个位置的天气,如Columb ...

    2. WebGoat系列实验Cross-Site Scripting (XSS)

      WebGoat系列实验Cross-Site Scripting (XSS) PhishingTitle 本次实验是在一个已知存在XSS漏洞的页面进行钓鱼攻击.通过使用XSS与HTML注入,在页面中注入 ...

    3. WebGoat系列实验Denial of Service & Insecure Communication

      WebGoat系列实验Denial of Service & Insecure Communication ZipBomb 服务器仅接收ZIP文件,将上传的文件解压,进行操作之后删除.已知服务 ...

    4. WebGoat系列实验Buffer Overflows & Code Quality & Concurrency

      WebGoat系列实验Buffer Overflows & Code Quality & Concurrency Off-by-One Overflows 实验需要访问OWASP Ho ...

    5. WebGoat系列实验Authentication Flaws

      WebGoat系列实验Authentication Flaws Forgot Password Web应用经常给用户提供取回密码的功能,但是许多应用的实现策略实现的很差,用于验证用户的信息非常简单. ...

    6. WebGoat系列实验Access Control Flaws

      WebGoat系列实验Access Control Flaws Using an Access Control Matrix 在基于角色的访问控制策略中,每个角色都代表了一个访问权限的集合.一个用户可 ...

    7. 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block

      原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...

    8. Mininet 系列实验(六)

      写在前面 这次实验遇到了非常多问题,非常非常多,花了很多时间去解决,还是有一些小问题没有解决,但是基本上能完成实验.建议先看完全文再开始做实验. 实验内容 先看一下本次实验的拓扑图: 在该环境下,假设 ...

    9. Mininet 系列实验(四)

      实验内容 本次实验拓扑图: 在该环境下,h0 向 h1 发送数据包,由于在 mininet 脚本中设置了连接损耗率,在传输过程中会丢失一些包,本次实验的目的是展示如何通过控制器计算路径损耗速率(h0- ...

    随机推荐

    1. git-SSH连接配置

      1.1 在电脑端生成sshkey文件 打开git bash 输入: ssh-keygen -t rsa -C "xxxxxxx邮箱地址" 期间要输入两次密码[github远程添加s ...

    2. python 编码拓展,小数据池,

      编码拓展: 1.在所有类型的编码中,编码的二进制互不识别, 2.在传输的过程中不能是万国码的二进制解码传输, 因此将unicode变为utf - 8或者变成gbk编码尤为重要; 利用encode编码为 ...

    3. 释放Windows C盘空间 -- 虚拟内存和休眠文件

      本文由Suzzz原创,发布于 http://www.cnblogs.com/Suzzz/p/4111718.html ,转载请保留此声明. 项目组有一Windows工作站, 由于需要使用Kinect最 ...

    4. BZOJ4520:[CQOI2016]K远点对

      浅谈\(K-D\) \(Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline ...

    5. 第二届PHP全球开发者大会(含大会的PPT)

      PHP全球开发者大会于2016年5月14日至15日在北京召开 更多现场图片请猛击: http://t.cn/RqeP7y9 ,  http://t.cn/RqD8Typ 最后,这次大会的PPT可以在这 ...

    6. HTML5两个打包工具

      AppCan:http://www.appcan.cn/ HBulider:http://www.dcloud.io/

    7. Day2-VIM(二):插入

      基础 字符位置插入 i 在光标之前插入 a 在光标之后追加 你看,其实刚开始用这两个就足够了,这就是最基础的 为什么这么说呢?因为你可以依靠上一节中的移动命令来达到任意位置,然后再大力插入 不要忘了, ...

    8. HTML5离线应用

      本地缓存与浏览器缓存 本地缓存是为整个web应用程序服务的而网页缓存值服务与单个网页 本地缓存是为你指定的资源进行缓存,而我们不知道网页缓存会春初哪些内容,他是不安全不可靠的 在没有网络的时候还是可以 ...

    9. mysql高可用集群——MHA架构

      目录1.下载2.搭建mha 2.1 系统配置 2.2 架构 2.3 添加ssh公钥信任 2.4 安装mha节点 2.5 manager配置文件 2.6 检查 2.7 启动manager进程 2.8 碰 ...

    10. MySQL 更新失效

      create table t(id int not null PRIMARY key,c int default null) engine=innodb;insert into t(id,c)valu ...