Write-up地址:Exploiting an unknown vulnerability

作者:Abhishek Bundela

  这篇文章跟我之前看到的文章不太一样,作者是按照一个练习的方式简单描述了他对一个应用进行渗透测试的过程,其中提到的许多测试虽然没有成功,但是对于像我这样的菜鸟来说还是有很大的启发,事实上在看的过程中我会很疑惑,也可能是因为我之前并不是特别了解逻辑漏洞,而许多bug bounty的write-up中提到的漏洞类型是比较集中的XSS或者CSRF,所以这篇文章让我从另一个角度看待web漏洞。


背景:一个已经经过渗透测试的咨询应用程序

  作者首先对应用进行分析,在实现应用功能时的数据流动。之后开始渗透测试,并首先分析可能存在的逻辑漏洞,因为在软件开发或者测试的过程中可能存在没有被考虑到的临界条件。

应用分析

1. 用户角色

  ①咨询顾问:设置一个时间点的咨询费用

# consultant request

POST /set/fee/

{"value": 5, "timing":2}

  ②客户:预约某咨询顾问的时间,并扣除对应时间点的咨询费用

# client request

POST /consultant_username/book

{"timing":2}

  到这里,我也想到一些测试,例如xss,sql注入,把参数值修改为负数或者极大值,设置多个重复的参数,然后开始看下面作者给出的测试:

2. 测试案例

  这里作者提到了九个测试用例,有一些我不太明白,所以直接引用原文了。

  ① 注入漏洞,例如sql注入,命令注入

  ② 把content-type和请求数据修改为xml,测试是否存在xml注入

  ③ Booking consultant’s higher value time slots in less coin

  ④ Injecting “value” parameter from consultant request and using it in client request

  ⑤ 在客户的请求中使用两个timing参数

  ⑥ 在客户请求中把参数设置为{“timing[0]”:2} (这种把参数设置为数组的漏洞我之前也看到过两个,但是没有记录网址)

  ⑦ 修改HTTP方法,POST -> PUT

  ⑧ 同时订阅同一个咨询顾问的多个时间点(条件竞争)

  ⑨ 同时订阅两个不同咨询顾问的时间点(条件竞争)

  以上的条件竞争对我来说比较新颖,由于以上测试都失败了,作者对于具体的测试方法也并没有详细介绍,而作者记下来找到的漏洞也是一种条件竞争,所以我其实不是特别明白⑧⑨中的条件竞争漏洞如果真的存在,会是怎样的一种情况。

3. 发现漏洞

  之后作者把精力集中在了客户的请求上,由于客户发送的请求中并不包括value,所以如果在客户订阅之前,咨询顾问提高了咨询价格会发生什么?

  单个发送请求并没有问题,但是如果使用多线程,按照value值为{5,15,15,5}循环发送咨询顾问请求,客户有50%的可能性会支付更高的咨询费用。

4. 漏洞存在的原因

  我对条件竞争这个概念并不陌生,想必大家在学习条件竞争时接触到的模拟案例大多都是订票系统吧,而订票系统不就是一个web应用吗?可是刚看到这个漏洞的时候,我甚至都不理解为什么它会是一个漏洞。

  考虑到具体场景,客户已经在订阅提交的页面,而这时候咨询顾问修改了价格,如果应用实现不当,后台在发生客户订阅事件时没有锁定value变量,导致咨询顾问仍然可以对其进行修改,确实会发生客户以更高价格订阅服务的情况。


  之前的文章中,作者多是针对一个网站,分析它的各个子域名,对于每个子域名,查看实现其功能时发送的各种请求,分析其中可能的漏洞。然而文章中并没有详细说明作者是怎样找到了最终的漏洞的。

  而这篇文章,作者直接从该咨询应用的功能出发,描述了他怎样列出一系列测试案例,最终针对某个测试成功发现漏洞的流程,和之前文章的侧重点不同。

  但是有一点是相同的,那就是他们都强调了去分析应用的功能,查看请求历史,分析数据的流动方向,而这篇文章的作者尤其强调了要把更多的时间和精力用于构建smarter的测试案例,这样才能发现漏洞。

【10.21总结】一个渗透测试练习实例——发现未知的漏洞(Race condition)的更多相关文章

  1. docker搭建一个渗透测试环境 bwapp为例

    bwapp是一个渗透测试靶场,他其中中含有100多个Web漏洞  基本涵盖了所有主要的已知Web漏洞,包括OWASP Top 10的各种 首先要去搜索一下  看一下有哪些镜像可以下载    docke ...

  2. 用Python打造了一个渗透测试暴力探测器

    资源探测的作用 通过资源探测,我们可以在目标系统中发现文件.目录.活动.服务还有相关的参数,为下一步的行动提供信息参考. 一个开源的模糊测试数据库 https://github.com/fuzzdb- ...

  3. 渗透测试学习 二十、 其他漏洞汇总之PHP相关漏洞

    大纲: PHP相关漏洞 JSP相关漏洞 其他漏洞汇总 PHP相关漏洞 文件包含漏洞 php://input等伪协议利用 代码执行漏洞 变量覆盖漏洞 文件包含漏洞 程序开发人员一般会把重复使用的函数写到 ...

  4. 渗透测试学习 十七、 XSS跨站脚本漏洞详解

      一般用途:拿cookie进后台,将后台地址一起发送过来 特点:挖掘困难,绕过困难  大纲: XSS漏洞基础讲解 XSS漏洞发掘与绕过 XSS漏洞的综合利用 XSS漏洞基础讲解 XSS介绍: 跨站脚 ...

  5. 【渗透测试】Squirrelmail远程代码执行漏洞+修复方案

    最近网上有点不太平,爆出各种漏洞,等下会把近期的漏洞复现一下,发出来.安全圈的前辈总是默默的奉献,在这里晚辈们只能站在巨人的肩膀上,跟紧前辈们的步伐,走下去. -------------------- ...

  6. 使用WampServer和DVWA在Windows10上搭建渗透测试环境

    前言: DVWA是一个具有脆弱性的Web测试应用,需要PHP和MySQL的环境支持.我们可以手动配置DVWA所需的运行环境,也可以使用WampServer进行搭建.WampServer是集成了Apac ...

  7. PJzhang:Firefox渗透测试插件HackTools样例

    猫宁~~~ firefox插件hacktools地址: https://addons.mozilla.org/zh-CN/firefox/addon/hacktools/ HackTools由Ludo ...

  8. 《Metasploit渗透测试魔鬼训练营》第一章读书笔记

    第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...

  9. Kali Linux渗透测试实战 1.4 小试牛刀

    目录 1.4 小试牛刀 1.4.1 信息搜集 whois查询 服务指纹识别 端口扫描 综合性扫描 1.4.2 发现漏洞 1.4.3 攻击与权限维持 小结 1.4 小试牛刀 本节作为第一章的最后一节,给 ...

随机推荐

  1. 'webpack' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    npm updatea -g 很严重,把本地npm安装包都更新了,跟项目npm安装包版本不一,导致 意思是版本冲突,手动卸载了,重新安装还是最新版本,很是头疼.找同事的电脑拷贝了一份,然后复制过来报“ ...

  2. 搜索关键字自动更正 - Oracle Endeca Server

    做了几个Oracle Endeca 电商项目.每个项目都会有搜过关键字拼写错误更正(Spelling Correction)的需求.淘宝也有类似功能. Oracle Endeca Sever提供了关键 ...

  3. Oracle EBS AR 更新客户配置文件

    DECLARE l_rec_profile_t hz_customer_profile_v2pub.customer_profile_rec_type; l_rec_profile hz_custom ...

  4. [EXCEL] 不能清除剪贴板: We couldn't free up space on the clipboard. Another program might be using it right now

    Excel复制粘贴时出现以下错误,原因是有程序占用了剪切板. We couldn't free up space on the clipboard. Another program might be ...

  5. PHPredis安装

    一.PHPredis下载链接:https://pan.baidu.com/s/1bz0EaJgDpp2ADQJCJOHJGA 二.解压并进入目录 三.发现没有configure文件,需要安装autoc ...

  6. Gogs集成AD域LDAP

    操作步骤: 添加认证源 使用管理员账号登录Gogs,进入控制面板→认证源管理→添加新的源 设置如图所示 使用ldap认证源登录 配置成功后,登录时可选择认真源,界面如图所示

  7. javascript excel

    js做的 excel ,  http://handsontable.com/  js keyCode对照表  http://dwz.cn/Lknbz

  8. centos7.4之zabbix4.0的fping监控

    参考博文: https://www.cnblogs.com/lei0213/p/8859326.html 注释:他是额外安装fping的:因为我yum安装的zabbix,fping就已经自带了:安装步 ...

  9. VRS外部文件

    igs08_1708.atx:IGS卫星和接收机段天线PCO改正 Configure:配置文件

  10. Java问题汇总(一) ----------2019/2/22

    第一次写,就弄弄简单样式