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

Off-by-One Overflows

  1. 实验需要访问OWASP Hotel页面,找出VIP客户的房间号。
  2. Step 1中需要登记用户的First Name,Last Name以及Room Number,随意填入数据,点击Submit提交即可。
  3. Step 2中需要确认住宿的时间。查看网页源代码,发现在Step 1中输入的3个参数是hidden input方式。
  4. 选择$9.99 - 24hours选项,点击Accept Terms按钮。
  5. 此时使用Burp拦截GET请求报文。
  6. 将GET请求报文发送到intruder中,设置Attack type为Sniper,分别将last_name,first_name和room_no设置为payload的位置,Payload type选择Character blocks模式(也可以使用Numbers模式填充房间号,但是位数的增长比较慢...),Payload选项随意选择了一个字符9,最小长度为1,最大长度为10000,步长设置为1000。
  7. exploit后发现使用房间号room_no可以使得程序发生Buffer Overflow错误,从而获取VIP的房间信息。
  8. 分析payload数据发现,程序大约从room_no为5000个9开始发生Buffer Overflow错误,当room_no超过约7000个9的时候,服务器返回400的错误信息。表明此时发出的GET请求报文已经不合法。
  9. 返回Step 1,将获取到的VIP房间信息填写到输入框中,点击Submit通过实验。

Discover Clues in the HTML

  1. 寻找登录的线索。
  2. 查看源代码发现遗留的用户名与密码。
  3. 成功登录。

Shopping Cart Concurrency Flaw

  1. 需要攻击网页的并发缺陷,用更低的价格购买商品。
  2. 将每件商品的数目设定为2,点击Update Cart按钮。
  3. 使用Burp截取GET请求报文,发现更新内容是对4件商品数目的更新。
  4. 在另外一个标签页中打开购物界面,将所有商品的数目设定为1,点击Purchase按钮,出现Confirm按钮与Cancel按钮。
  5. 使用Burp截取的GET请求报文表明,此时仍向服务器发送商品的数目。
  6. 点击Confirm按钮,使用Burp拦截,发现此时已经没有在报文中发送商品价格,推测商品的价格保存在服务器端(?),然后丢弃该报文。
  7. 在前一个标签页中点击Update Cart按钮更新价格,在第二个标签页中点击Confirm按钮,通过实验。

Thread Safety Problems

  1. Web应用程序可以同时处理很多http请求。开发人员经常使用的变量不是线程安全的。线程安全是指一个对象或类的领域在多线程同时使用的时候总是保持有效的状态。它往往可以利用并发错误,精确地在同一时间同一个页面加载另一个用户。
  2. 同时打开两个标签页,一个填写jeff,另一个填写dave,快速的点击两个标签页的Submit按钮,就会出现两个标签页显示的用户都是同一个的错误。

WebGoat系列实验Buffer Overflows & Code Quality & Concurrency的更多相关文章

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

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

  2. WebGoat系列实验AJAX Security

    WebGoat系列实验AJAX Security DOM Injiction 实验对象是一个接受激活密钥后允许你访问的系统,实验目标是尝试将激活按钮变得可以点击. 直接修改页面代码激活按钮,Chrom ...

  3. WebGoat系列实验Injection Flaws

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

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

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

  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. 16.翻译系列:EF 6 Code -First中使用存储过程【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/entityframework6/code-first-insert-update-delete-stored ...

  8. Mininet 系列实验(六)

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

  9. Mininet 系列实验(四)

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

随机推荐

  1. STL的erase函数和lower_bound

    前提摘要: [1]一般我们的区间是左闭右开,如下面例子2. [2]erase函数谨慎使用. [3]map也是有序保存的. [erase] 1,删除字符串的首字母: string s="ecu ...

  2. string容器

    一.string特性 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的,string与char*都可以用来表示字符串. 说到string的 ...

  3. js 科学计数转数字或字符串

  4. WPF开发中Designer和码农之间的合作

    想要用WPF做出一流的软件界面, 必须要Designer和码农通力合作.理想的情况是平时并行开发,Designer用Expression套件(包括Design和Blend)来设计界面,码农开发Mode ...

  5. microsoft windows network 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

    运行CMD在命令行中运行net use * /del /y 命令中断开所有连接最后,你再次访问 ,就不会有问题了. 而且可以连接多个samba用户.

  6. linux下的时间

    1.linux下时间管理机制: 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现.为了保持系统时间与CMOS时间的一致性,Linux每隔11分钟会 ...

  7. 最小LINUX系统下U盘的挂载及卸载

    U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系 ...

  8. web 应用 及 补充

    Highcharts 绘图配置 的函数及参数 web页面文本框修饰器 --- KindEditor web页面 之 超人性的点赞与狂踩 web页面 之 图片上传 web页面 之 评论盖楼 jQuery ...

  9. web基础(五)Jquery

    jQuery是一个快速的,简洁的javaScript库(占空间特别小,但功能强大!兼容性极强!),这个库里封装了一些方法,使用户能更方便地处理HTMLdocuments.events.实现动画效果,并 ...

  10. 有关Backgroundworker

    (一)Backgroundworker取消时应该用的有关代码: CancelAsync方法是在前台主线程用的,CancellationPending属性是在后台子线程用的.实际的使用方式应该是这样的: ...