业务安全漏洞挖掘归纳总结

简介: 转自乌云,原文链接http://drops.wooyun.org/web/6917,默哀身份认证安全1.暴力破解在没有验证码限制或者一次验证码可以多次使用的地方,使用已知用户对密码进行暴力破解或者用一个通用密码对用户进行暴力破解。

转自乌云,原文链接http://drops.wooyun.org/web/6917,默哀

身份认证安全

1.暴力破解

在没有验证码限制或者一次验证码可以多次使用的地方,使用已知用户对密码进行暴力破解或者用一个通用密码对用户进行暴力破解。 简单的验证码爆破。URL: http://zone.wooyun.org/content/20839

一些工具及脚本 描述
Burpsuite
htpwdScan 撞库爆破必备 URL: https://github.com/lijiejie/htpwdScan
hydra 源码安装xhydra支持更多的协议去爆破 (可破WEB,其他协议不属于业务安全的范畴)
2.session & cookie类

会话固定攻击:利用服务器的session不变机制,借他人之手获得认证和授权,冒充他人。案例:WooYun: 新浪广东美食后台验证逻辑漏洞,直接登录后台,566764名用户资料暴露!
Cookie仿冒:修改cookie中的某个参数可以登录其他用户。 案例:益云广告平台任意帐号登录WooYun: 益云广告平台任意帐号登录

3.弱加密

未使用https,是功能测试点,不好利用。
前端加密,用密文去后台校验,并利用smart decode可解


业务一致性安全

1.手机号篡改
  • 抓包修改手机号码参数为其他号码尝试,例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。
2.邮箱或者用户篡改
  • 抓包修改用户或者邮箱参数为其他用户或者邮箱
  • 案例: WooYun: 绿盟RSAS安全系统全版本通杀权限管理员绕过漏洞,包括最新 RSAS V5.0.13.2
3.订单id篡改
  • 查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。
  • 案例: WooYun: 广之旅旅行社任意访问用户订单
4.商品编号篡改
  • 例如积分兑换处,100个积分只能换商品编号为001,1000个积分只能换商品编号005,在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。
  • 案例:联想某积分商城支付漏洞再绕过 WooYun: 联想某积分商城支付漏洞再绕过
5.用户id篡改
  • 抓包查看自己的用户id,然后修改id(加减1)查看是否能查看其它用户id信息。
  • 案例: WooYun: 拉勾网百万简历泄漏风险(包括手机、邮件、应聘职位等信息、还可冒充企业身份筛选简历、发面试通知等)

业务数据篡改

1.金额数据篡改
  • 抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。 b) 案例: WooYun: 12308订单支付时的总价未验证漏洞(支付逻辑漏洞)
2.商品数量篡改
  • 抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,查看能否以修改后的数量完成业务流程。 b) 案例: WooYun: 蔚蓝团支付逻辑漏洞(可负数支付)
3.最大数限制突破
  • 很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,查看能否以修改后的数量完成业务流程。
4.本地js参数修改
  • 部分应用程序通过Javascript处理用户提交的请求,通过修改Javascript脚本,测试修改后的数据是否影响到用户。

用户输入合规性

1.注入测试 请参考http://wiki.wooyun.org/web:sql
2.XSS测试 请参考http://wiki.wooyun.org/web:xss
3.Fuzz
  • 功能测试用的多一些,有可能一个超长特殊字符串导致系统拒绝服务或者功能缺失。(当然fuzz不单单这点用途。)
  • 不太符合的案例,但思路可借鉴: WooYun: 建站之星模糊测试实战之任意文件上传漏洞
  • 可能会用的工具 —— spike
4.其他用用户输入交互的应用漏洞

密码找回漏洞

1.大力推荐BMa的《密码找回逻辑漏洞总结》http://drops.wooyun.org/web/5048

密码找回逻辑测试一般流程

  1. 首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包
  2. 分析数据包,找到敏感部分
  3. 分析后台找回机制所采用的验证手段
  4. 修改数据包验证推测
脑图 (详情请参考BMa的《密码找回逻辑漏洞总结》)

验证码突破

验证码不单单在登录、找密码应用,提交敏感数据的地方也有类似应用,故单独分类,并进一步详情说明。

1.验证码暴力破解测试
  • 使用burp对特定的验证码进行暴力破解
  • 案例: WooYun: 盟友88电商平台任意用户注册与任意用户密码重置漏洞打包
2.验证码时间、次数测试
  • 抓取携带验证码的数据包不断重复提交,例如:在投诉建议处输入要投诉的内容信息,及验证码参数,此时抓包重复提交数据包,查看历史投诉中是否存在重复提交的参数信息。
  • 案例:
3.验证码客户端回显测试
  • 当客户端有需要和服务器进行交互,发送验证码时,即可使用firefox按F12调出firebug就可看到客户端与服务器进行交互的详细信息
4.验证码绕过测试
  • 当第一步向第二步跳转时,抓取数据包,对验证码进行篡改清空测试,验证该步骤验证码是否可以绕过。
  • 案例: WooYun: 中国电信某IDC机房信息安全管理系统设计缺陷致使系统沦陷
5.验证码js绕过
  • 短信验证码验证程序逻辑存在缺陷,业务流程的第一步、第二部、第三步都是放在同一个页面里,验证第一步验证码是通过js来判断的,可以修改验证码在没有获取验证码的情况下可以填写实名信息,并且提交成功。

业务授权安全

1.未授权访问
  • 非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息。可以尝试在登录某网站前台或后台之后,将相关的页面链接复制于其他浏览器或其他电脑上进行访问,看是否能访问成功。
2.越权访问

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定

  • 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)
  • 水平越权(水平越权是指相同权限的不同用户可以互相访问)(wooyun-2010-0100991 PHPEMS多处存在水平权限问题)
  • 《我的越权之道》URL:http://drops.wooyun.org/tips/727

业务流程乱序

1.顺序执行缺陷
  • 部分网站逻辑可能是先A过程后B过程然后C过程最后D过程
  • 用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。于是,用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。
  • 案例:WooYun: 万达某分站逻辑错误可绕过支付直接获得取票密码 http://wooyun.org/bugs/wooyun-2010-0108184

业务接口调用安全

1.重放攻击

在短信、邮件调用业务或生成业务数据环节中(类:短信验证码,邮件验证码,订单生成,评论提交等),对其业务环节进行调用(重放)测试。如果业务经过调用(重放)后被多次生成有效的业务或数据结果

  • 恶意注册
  • 短信炸弹

在测试的过程中,我们发现众多的金融交易平台仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信
案例: WooYun: 一亩田交易网逻辑漏洞(木桶原理)

2.内容编辑

类似案例如下:
点击“获取短信验证码”,并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容
将内容修改“恭喜你获得由xx银行所提供的iphone6一部,请登录http://www.xxx.com领取,验证码为236694”并发送该数据包,手机可收到修改后的短信内容,如下图:


时效绕过测试

大多有利用的案例发生在验证码以及业务数据的时效范围上,在之前的总结也有人将12306的作为典型,故,单独分类。

1.时间刷新缺陷

12306网站的买票业务是每隔5s,票会刷新一次。但是这个时间确实在本地设置的间隔。于是,在控制台就可以将这个时间的关联变量重新设置成1s或者更小,这样刷新的时间就会大幅度缩短(主要更改autoSearchTime本地参数)。 案例:
WooYun: 12306自动刷票时间可更改漏洞

2.时间范围测试

针对某些带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内查询的业务,修改含有时间明文字段的请求并提交,查看能否绕过时间限制完成业务流程。例如通过更改查询手机网厅的受理记录的month范围,可以突破默认只能查询六个月的记录。


安全科普:看视频理解Web应用安全漏洞TOP10(IBM内部视频) http://www.freebuf.com/vuls/63426.html

目录
相关文章
|
14天前
|
敏捷开发 测试技术 持续交付
深入探究软件自动化测试中的挑战与对策
【4月更文挑战第2天】 在软件开发的生命周期中,测试环节是保障产品质量的重要步骤。随着敏捷开发和持续集成的流行,自动化测试成为提升测试效率和质量的关键手段。然而,实施自动化测试并非没有挑战。本文将探讨自动化测试过程中常见的问题,包括测试用例设计、维护成本、框架选择、以及跨平台兼容性等,并针对每一挑战提出相应的解决策略。通过实际案例分析,本文旨在为软件测试工程师提供实用的自动化测试优化指南。
|
4月前
|
安全 物联网 测试技术
一些安全测试相关的概念梳理
一些安全测试相关的概念梳理
|
7月前
|
机器学习/深度学习 人工智能 运维
异常检测:探索数据深层次背后的奥秘《中篇》
异常检测:探索数据深层次背后的奥秘《中篇》
异常检测:探索数据深层次背后的奥秘《中篇》
|
9月前
|
负载均衡 监控 算法
转:启发式算法对网络行为管理系统的应用研究、实用性分析及实现难度
启发式算法在网络行为管理系统中的应用研究是一个重要的领域,它可以帮助改善系统的性能和效率。启发式算法是一种通过模拟自然界的演化过程或启发式规则来解决复杂问题的方法。
55 2
|
敏捷开发 架构师 项目管理
架构师才能看懂的大型网站架构面临的挑战:业务架构的基本思路
业务架构的基本思路 大型网站系统有很多功能,一次性明确所有的功能需求并设计出一个庞大的业务架构是一件费力不讨好的事情。因为在项目前期,难免会忽视一些琐碎功能,而随着开发的进行,也会有很多新的想法产生,基本上不会存在完全按照最初的业务架构设计完成的软件产品。因此,业务架构不仅要做到“规整功能模块,厘清产品业务逻辑”,更重要的是如何做到“有规划性地应对项目过程中的需求变更”。
|
供应链 算法 数据挖掘
谈谈预后性分析是预测性分析的有益补充
预测分析是企业展望未来的主要应用方式。市场营销、零售、生产、设备管理、供应链管理以及许多其他应用都显示出预测的价值和力量,可以作为预测未来结果的工具。
谈谈预后性分析是预测性分析的有益补充
|
架构师 机器人 Java
测试理论-软件测试理论基础
软件测试的IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果之间的差异。
153 2
测试理论-软件测试理论基础
|
监控 项目管理 UED
如何做规划?分享2种思维和4个方法
规划不只是高层的事。学会做规划,不仅可以让目标更聚焦,还能让我们清晰地知道今后要做什么、如何去做。在本篇文章中,提到了规划的2种思维模式,和作者自己在规划中用到的4个规划方法,希望让开始做规划的你显得不那么迷茫。
如何做规划?分享2种思维和4个方法