热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

0x00索引说明6.30在OWASP的分享,关于业务安全的漏洞检测模型。进一步的延伸科普。0x01身份认证安全1暴力破解在没有验证码限制或者一次验证码可以多

0x00 索引说明

6.30在OWASP的分享,关于业务安全的漏洞检测模型。进一步的延伸科普。

enter image description here

enter image description here

0x01 身份认证安全

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可解

0x02 业务一致性安全

1 手机号篡改

a) 抓包修改手机号码参数为其他号码尝试,例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。

2 邮箱或者用户篡改

a) 抓包修改用户或者邮箱参数为其他用户或者邮箱

b) 案例: WooYun: 绿盟RSAS安全系统全版本通杀权限管理员绕过漏洞,包括最新 RSAS V5.0.13.2

3 订单id篡改

a) 查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。

b) 案例: WooYun: 广之旅旅行社任意访问用户订单

4 商品编号篡改

a) 例如积分兑换处,100个积分只能换商品编号为001,1000个积分只能换商品编号005,在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。

b) 案例:联想某积分商城支付漏洞再绕过 WooYun: 联想某积分商城支付漏洞再绕过

5 用户id篡改

a) 抓包查看自己的用户id,然后修改id(加减1)查看是否能查看其它用户id信息。

b) 案例: WooYun: 拉勾网百万简历泄漏风险(包括手机、邮件、应聘职位等信息、还可冒充企业身份筛选简历、发面试通知等)

0x03 业务数据篡改

1 金额数据篡改

a) 抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。 b) 案例: WooYun: 12308订单支付时的总价未验证漏洞(支付逻辑漏洞)

2 商品数量篡改

a) 抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,查看能否以修改后的数量完成业务流程。 b) 案例: WooYun: 蔚蓝团支付逻辑漏洞(可负数支付)

3 最大数限制突破

a) 很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,查看能否以修改后的数量完成业务流程。

4 本地js参数修改

a) 部分应用程序通过Javascript处理用户提交的请求,通过修改Javascript脚本,测试修改后的数据是否影响到用户。

0x04 用户输入合规性

1 注入测试 请参考http://wiki.wooyun.org/web:sql

2 XSS测试 请参考http://wiki.wooyun.org/web:xss

3 Fuzz

a) 功能测试用的多一些,有可能一个超长特殊字符串导致系统拒绝服务或者功能缺失。(当然fuzz不单单这点用途。)

b) 不太符合的案例,但思路可借鉴: WooYun: 建站之星模糊测试实战之任意文件上传漏洞

c) 可能会用的工具 —— spike

4 其他用用户输入交互的应用漏洞

0x05 密码找回漏洞

1 大力推荐BMa的《密码找回逻辑漏洞总结》

http://drops.wooyun.org/web/5048

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

i. 首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包

ii. 分析数据包,找到敏感部分

iii. 分析后台找回机制所采用的验证手段

iv. 修改数据包验证推测

b) 脑图 (详情请参考BMa的《密码找回逻辑漏洞总结》)

enter image description here

0x06 验证码突破

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

1 验证码暴力破解测试

a) 使用burp对特定的验证码进行暴力破解

b) 案例: WooYun: 盟友88电商平台任意用户注册与任意用户密码重置漏洞打包

2 验证码时间、次数测试

a) 抓取携带验证码的数据包不断重复提交,例如:在投诉建议处输入要投诉的内容信息,及验证码参数,此时抓包重复提交数据包,查看历史投诉中是否存在重复提交的参数信息。

b) 案例:

3 验证码客户端回显测试

a 当客户端有需要和服务器进行交互,发送验证码时,即可使用firefox按F12调出firebug就可看到客户端与服务器进行交互的详细信息

4 验证码绕过测试

a) 当第一步向第二步跳转时,抓取数据包,对验证码进行篡改清空测试,验证该步骤验证码是否可以绕过。

b) 案例: WooYun: 中国电信某IDC机房信息安全管理系统设计缺陷致使系统沦陷

5 验证码js绕过

a) 短信验证码验证程序逻辑存在缺陷,业务流程的第一步、第二部、第三步都是放在同一个页面里,验证第一步验证码是通过js来判断的,可以修改验证码在没有获取验证码的情况下可以填写实名信息,并且提交成功。

0x07 业务授权安全

1 未授权访问

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

2 越权访问

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

a) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)

b) 水平越权(水平越权是指相同权限的不同用户可以互相访问)(wooyun-2010-0100991 PHPEMS多处存在水平权限问题)

c) 《我的越权之道》URL:http://drops.wooyun.org/tips/727

0x08 业务流程乱序

1 顺序执行缺陷

a) 部分网站逻辑可能是先A过程后B过程然后C过程最后D过程

b) 用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。于是,用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。

c) 案例:

WooYun: 万达某分站逻辑错误可绕过支付直接获得取票密码

http://wooyun.org/bugs/wooyun-2010-0108184

0x09 业务接口调用安全

1 重放攻击

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

a) 恶意注册

b) 短信炸弹

在测试的过程中,我们发现众多的金融交易平台仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信

案例: WooYun: 一亩田交易网逻辑漏洞(木桶原理)

2 内容编辑

类似案例如下:

点击“获取短信验证码”,并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容

enter image description here

将内容修改“恭喜你获得由xx银行所提供的iphone6一部,请登录http://www.xxx.com领取,验证码为236694”并发送该数据包,手机可收到修改后的短信内容,如下图:

enter image description here

0x10 时效绕过测试

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

1 时间刷新缺陷

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

WooYun: 12306自动刷票时间可更改漏洞

2 时间范围测试

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

0x11 参考

@eversec

应用程序逻辑错误总结 http://drops.wooyun.org/papers/1418

密码找回功能可能存在的问题 http://drops.wooyun.org/papers/287

密码找回功能可能存在的问题(补充) http://drops.wooyun.org/web/3295

密码找回逻辑漏洞总结 http://drops.wooyun.org/web/5048

支付漏洞的三种常见类型——加固方案 http://zone.wooyun.org/content/878

在线支付逻辑漏洞总结 http://drops.wooyun.org/papers/345

金融行业平台常见安全漏洞与防御 http://www.freebuf.com/news/special/61082.html

我的越权之道 http://drops.wooyun.org/tips/727

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


推荐阅读
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
author-avatar
温温
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有