WebGoat系列实验Buffer Overflows & Code Quality & Concurrency
WebGoat系列实验Buffer Overflows & Code Quality & Concurrency
Off-by-One Overflows
- 实验需要访问OWASP Hotel页面,找出VIP客户的房间号。
- Step 1中需要登记用户的First Name,Last Name以及Room Number,随意填入数据,点击Submit提交即可。

- Step 2中需要确认住宿的时间。查看网页源代码,发现在Step 1中输入的3个参数是hidden input方式。

- 选择$9.99 - 24hours选项,点击Accept Terms按钮。

- 此时使用Burp拦截GET请求报文。

- 将GET请求报文发送到intruder中,设置Attack type为Sniper,分别将last_name,first_name和room_no设置为payload的位置,Payload type选择Character blocks模式(也可以使用Numbers模式填充房间号,但是位数的增长比较慢...),Payload选项随意选择了一个字符9,最小长度为1,最大长度为10000,步长设置为1000。

- exploit后发现使用房间号room_no可以使得程序发生Buffer Overflow错误,从而获取VIP的房间信息。

- 分析payload数据发现,程序大约从room_no为5000个9开始发生Buffer Overflow错误,当room_no超过约7000个9的时候,服务器返回400的错误信息。表明此时发出的GET请求报文已经不合法。

- 返回Step 1,将获取到的VIP房间信息填写到输入框中,点击Submit通过实验。
Discover Clues in the HTML
- 寻找登录的线索。

- 查看源代码发现遗留的用户名与密码。

- 成功登录。

Shopping Cart Concurrency Flaw
- 需要攻击网页的并发缺陷,用更低的价格购买商品。
- 将每件商品的数目设定为2,点击Update Cart按钮。

- 使用Burp截取GET请求报文,发现更新内容是对4件商品数目的更新。

- 在另外一个标签页中打开购物界面,将所有商品的数目设定为1,点击Purchase按钮,出现Confirm按钮与Cancel按钮。

- 使用Burp截取的GET请求报文表明,此时仍向服务器发送商品的数目。

- 点击Confirm按钮,使用Burp拦截,发现此时已经没有在报文中发送商品价格,推测商品的价格保存在服务器端(?),然后丢弃该报文。

- 在前一个标签页中点击Update Cart按钮更新价格,在第二个标签页中点击Confirm按钮,通过实验。

Thread Safety Problems
- Web应用程序可以同时处理很多http请求。开发人员经常使用的变量不是线程安全的。线程安全是指一个对象或类的领域在多线程同时使用的时候总是保持有效的状态。它往往可以利用并发错误,精确地在同一时间同一个页面加载另一个用户。
- 同时打开两个标签页,一个填写jeff,另一个填写dave,快速的点击两个标签页的Submit按钮,就会出现两个标签页显示的用户都是同一个的错误。
WebGoat系列实验Buffer Overflows & Code Quality & Concurrency的更多相关文章
- WebGoat系列实验Cross-Site Scripting (XSS)
WebGoat系列实验Cross-Site Scripting (XSS) PhishingTitle 本次实验是在一个已知存在XSS漏洞的页面进行钓鱼攻击.通过使用XSS与HTML注入,在页面中注入 ...
- WebGoat系列实验AJAX Security
WebGoat系列实验AJAX Security DOM Injiction 实验对象是一个接受激活密钥后允许你访问的系统,实验目标是尝试将激活按钮变得可以点击. 直接修改页面代码激活按钮,Chrom ...
- WebGoat系列实验Injection Flaws
WebGoat系列实验Injection Flaws Numeric SQL Injection 下列表单允许用户查看天气信息,尝试注入SQL语句显示所有天气信息. 选择一个位置的天气,如Columb ...
- WebGoat系列实验Denial of Service & Insecure Communication
WebGoat系列实验Denial of Service & Insecure Communication ZipBomb 服务器仅接收ZIP文件,将上传的文件解压,进行操作之后删除.已知服务 ...
- WebGoat系列实验Authentication Flaws
WebGoat系列实验Authentication Flaws Forgot Password Web应用经常给用户提供取回密码的功能,但是许多应用的实现策略实现的很差,用于验证用户的信息非常简单. ...
- WebGoat系列实验Access Control Flaws
WebGoat系列实验Access Control Flaws Using an Access Control Matrix 在基于角色的访问控制策略中,每个角色都代表了一个访问权限的集合.一个用户可 ...
- 16.翻译系列:EF 6 Code -First中使用存储过程【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/entityframework6/code-first-insert-update-delete-stored ...
- Mininet 系列实验(六)
写在前面 这次实验遇到了非常多问题,非常非常多,花了很多时间去解决,还是有一些小问题没有解决,但是基本上能完成实验.建议先看完全文再开始做实验. 实验内容 先看一下本次实验的拓扑图: 在该环境下,假设 ...
- Mininet 系列实验(四)
实验内容 本次实验拓扑图: 在该环境下,h0 向 h1 发送数据包,由于在 mininet 脚本中设置了连接损耗率,在传输过程中会丢失一些包,本次实验的目的是展示如何通过控制器计算路径损耗速率(h0- ...
随机推荐
- Linux命令学习(21):netstat命令
版权声明 更新:2017-06-13博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的netstat ...
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- NOIp2018集训test-10-24(am&pm)
李巨连续AK三场了,我跟南瓜打赌李巨连续AK七场,南瓜赌李巨连续AK五场. DAY1 T1 qu 按题意拿stack,queue和priority_que模拟即可.特判没有元素却要取出的情况. T2 ...
- php7 新特性整理
PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来越好. 在这里整理 PHP 5.1 ,PHP5.2,PHP5.3,PHP5.4,PHP ...
- Java基础--压缩和解压缩gz包
gz是Linux和OSX中常见的压缩文件格式,下面是用java压缩和解压缩gz包的例子 public class GZIPcompress { public static void FileCompr ...
- DCloud-MUI:HBuilder 安装
ylbtech-DCloud-MUI:HBuilder 安装 1.返回顶部 1. 2. 3. 4. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返 ...
- [置顶]
都是类型惹的祸——小心unsigned
正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等.大家有没想 ...
- PowerDesigner的Additional Checkes 中使用统配符
在Domian或字段的的约束条件中,会用的正则表达式等约束.但正则表达式 regexp_like(ICAO,'^([A-Z]{4}$')中要出现明确字段名如ICAO,每个使用同样约束的字段都要修改此字 ...
- list()的相关问题
由php手册中可以看到对list的定义: list — 把数组中的值赋给一些变量,像 array() 一样,这不是真正的函数,而是语言结构.list() 用一步操作给一组变量进行赋值. array l ...
- UIBezierPath和CAShapeLayer配合肆意画图
一.CAShapeLayer CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形 使用CAShapeLayer 绘制一个矩形 let layer ...