与传统类型漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像SQL注入、XSS有像WAF那样现成的防护手段;而且,每个企业的业务逻辑参差不齐,也形成了千奇百怪的逻辑漏洞。

前言

与传统类型漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像SQL注入、XSS有像WAF那样现成的防护手段;而且,每个企业的业务逻辑参差不齐,也形成了千奇百怪的逻辑漏洞。下面就和大家分享一下我都是从哪些维度去发现逻辑漏洞的。

一、未授权

形成未授权的原因一般是由于代码未做登录验证或者登录验证失效引起,从而使后台或者带有敏感信息的页面直接裸露在公网。site:在baidu、Google、bing、360等搜索引擎中使用site命令去搜索所要查询的域名信息,因为此时搜索以“全”为目的,所以不需要加任何搜索条件。

比如想查询a.com下的未授权,site:a.com即可。一般看搜索结果前十页。如果遇到被搜索引擎收录过多的域名,这时就需要加一些条件了,具体可以参考site命令用法。通过site命令,一般会很容易发现某个域名下的后台地址和直接暴露在公网的敏感信息页面。

域名爆破:通过爆破发现更多的二级、三级域名,然后导出域名列表通过脚本查看域名banner名称,或者挨个手工访问,观察是否有未授权登录的后台。一般大家都使用layer子域名挖掘和subDomainsBrute来进行子域名发现。

端口及banner扫描:端口不容小视,很多运维自作聪明,把后台或者其它管理系统直接改个非80端口绑定到公网。可以通过namp对域名所在ip段内的服务器进行端口扫描,生成ip+端口列表,然后通过脚本批量获取http banner。夫子通过这种方法成功发现并进入了各种知名互联网公司后台,当然,漏洞都已提交给他们的src了。

域名关联:目前有很多公司的域名是未做域名隐私保护的,可以通过whois查询某个域名所有人还拥有哪些域名,然后重复上述步骤。

二、登录与账户

一个业务,如果登录或者账户信息出现漏洞,信息被一些不法分子利用,可能出现类似电信诈骗的现象。

图形验证码:很多后台/前台在登录或注册时,是没有图形验证码的。这也就给爆破带来了便利。让人更不可思议的是,很多验证码只是个摆设,哪怕输入错误的验证码也能提交。

短信验证码:在app盛行的时代,短信登录更为便捷,所以在使用过程中也产生了诸多问题。

例如很多app登录时使用4位纯数字作为手机验证码。如果用户基数较大,在某一时间段,会有部分人使用同一个手机验证码登录。如果通过大量撞库,可能登录他人账号;又因为是4位验证码,如果单一账号也没限制短信登录重试次数,同时也存在通过爆破4位验证码登录的现象。

账号登录回显与注册:很多开发者或者产品,为了提升体验,在设计开发系统登录功能时会加一些友好的提示信息。比如提示“该用户不存在”、“该用户已注册”,这无疑是一个变相的撞库漏洞。在撞库之前,测试者一般都先搜集好精确的用户名字典,而提示用户不存在或登录时不存在的用户请求返回字节不一样,都构成了撞库。

明文密码登录:不少应用在登录时使用了明文密码登录,或者使用未加盐的md5,或者使用了外围人员不知道的加密方法,这些都是不可靠的。

拿加盐的md5值作为密码登录为例。登录时,只需在burp这类工具拿出几个常用密码加密后的密文,即可实现fuzz。终究的防护办法还是登录时加入签名,签名一旦被篡改,就无法登录。

账号及其它个人信息篡改:通过抓包方式对账号信息进行拦截,如手机号、uid、邮箱、token,篡改后提交数据包,从而达到登录别人账号的目的。一般防护办法是使用多个参数进行验证,当满足所有条件时才验证通过。

密码重置:密码重置也是一个重灾区,常见的密码重置绕过方式有数字验证码绕过,比如4位数字,通过爆破进行;有的通过修改返回结果,如把false改成true。还有的可以构造密码重置链接。这部分夫子接触较少,更多姿势可以参考乌云镜像案例。

三、越权

越权漏洞是逻辑安全中的重中之重,由于产品、研发追赶项目进度,会在项目开发过程中损耗一些安全属性。接下来我们看一下比较典型的越权漏洞,这些越权漏洞一旦发生,危害等同于脱裤。

订单遍历:订单遍历一般发生在三种场景,分别是前台订单遍历、后台订单遍历、前后台订单遍历。

1. 前台订单遍历指的是你在某平台购物或者下单订了个外卖,然后在查看订单时发现订单id为一串有规律的数字,这时可能通过变换id数字就可以查看他人订单信息了。

2. 后台订单遍历指的是一些管理后台,在前端展现的时候,每个用户只能查看系统分配给自己的一些订单信息。但是通过burp抓包进行fuzz时,多数都可越权查看其它账户下的订单信息,这就成了一个变相的脱裤。防护策略就是将订单id加密或者变成一串很大的数字,这样一来也就无法遍历。

3. 刚才说了两种场景,接下来说一下第三种场景。这个姿势稍微有点淫荡,我把这个场景称为前后端订单遍历。举个例子,当我们在某外卖提交订单时,信息里面会包含一个订单号,而这个订单需要一个商家端来接单。商家端接单时可以抓包,然后就可以进行订单遍历了。当然,前提是你得有一个商家端。

商家资质遍历:商家在运营过程中,会向平台提交一些身份证、营业执照等敏感信息。一些服务端为了方便保存,直接对上传文件以用户id或者一串数字保存,这样一来可能通过改id就可获取其它商家信息。修复办法就是将文件名称进行hash命名。

取消他人订单、恶意刷评:取消订单时对订单号进行拦截篡改,从而达到取消他人订单的目的;评论时更换评论者id,从而实现恶意刷好评、差评的目的。

四、支付

你想买个红色的爱疯7,于是给自己购物账户充值了5000软妹币,等你下单完毕后,发现账户余额变成了10000,这是为什么呢?

金额篡改:在下单时,通过拦截篡改支付额度后提交请求,一般会看到出其不意的效果,如把订单金额改小、改成负数。造成这一现象的原因是服务器端对金额未做二次校验。

充值与提现:充值和提现过程中都可能存在漏洞。

1. 充值一般会出现两种漏洞:

一种是少充多得,比如充值100元时通过篡改金额改成10元,最终充值完毕后账户变成了100元,而实际付款却只有10元;

另一种是绕过活动页金额限制,比如很多公司做活动强制用户充值金额不能低于10000,而通过拦截修改金额,可以充值任意金额。

2. 接下来我们再说说提现:

提现一般也是由于服务器端参数校验不严格,会经常存在一些信息泄露、无限提款的漏洞。一般提现时,我们可以通过篡改提现额度、银行卡号来实现。防护手段是手机号、姓名、银行卡账户、额度四个统一。

数量、商品/优惠id篡改:下单时,通过拦截篡改商品数量、商品id、优惠券等信息。如把数量改为一正一负、如替换优惠券满减id。

比如你有2张优惠券,一张id为1的优惠券满100减10块,一张id为2的优惠券满200减20。这时你买了100块钱的物品,勾选了满100减10块的优惠券,提交请求时把优惠卷id1篡改成了2,结果只支付了80块钱。

支付上的漏洞远不止这些。如果想深挖,可以尝试实现多个组合,通过频繁组合与篡改,观察效果。

五、API

现在是app盛行的时代,客户端使用API与服务器端进行数据传输,所以API安全问题频出,接下来说一下API常见的安全问题。

参数校验:举个例子,你在某个app内充值话费,返回查看订单时url参数包含了手机号、银行卡、充值金额,你通过改变手机号,获取到了其它用户的充值信息(银行卡号、金额)。这样你便获取了一一对应的手机号和银行卡,是不是很恐怖呢?其实这也是典型的平行越权。

短信邮箱炸弹:短信和邮箱经常出现的漏洞分为两种。一种是无任何频率限制,利用者可以无限制对目标手机号或者邮箱发送垃圾短信/邮件;另一种是对短信/邮件内容实现篡改。

关键参数不加密:如同上面说的订单号、银行卡号、身份证等敏感信息,这类数据要进行hash,从而减少被直接明文越权/遍历的风险。

分享了这么多,说说这两年从接触安全到能发现逻辑漏洞的一些心得。

1. 有枣没枣先打三竿:上来先动手跑几十万数据试试,毕竟光看是看不出安全漏洞细节的。

2. 观察每一个参数:逻辑问题重要的是测业务逻辑,所以每条http请求都不能放过,每个参数也要尽可能知道是干啥的,看看能不能改变某个参数引起异常返回结果。

3. 大胆假设:不要以为互联网巨头没安全漏洞,往往是比小公司安全问题更多。只有想不到,没有做不到。

4. 时间投入:一些漏洞,真不是1-2天能发现的,很多时候需要耗时几天甚至更久,需要分析业务请求才能发现,所以要头脑冷静急不得。

转自:http://netsecurity.51cto.com/art/201705/538558.htm

【逻辑漏洞技巧拓展】————1、逻辑至上之各种酷炫姿势相关推荐

  1. 【逻辑漏洞技巧拓展】————5、密码逻辑漏洞

    在前段时间的这两周时间里,爆出了各种大网站数据库泄漏的问题(这个好像跟今天的主题没什么关系),所以我今天就来讨论一下在平时的渗透过程中密码那些事情(果然跟数据库泄漏没什么): 其实密码导致的漏洞在漏洞 ...

  2. 【逻辑漏洞技巧拓展】————3、逻辑漏洞之密码重置

    密码找回验证条件可社工 1 只验证帐号是否存在即可修改密码 2 只验证帐号与邮箱地址是否匹配即可修改密码 3 只验证帐号与手机号是否匹配即可修改密码 密码修改页面可预测 案例介绍: 问题出现在忘记密码 ...

  3. 【逻辑漏洞技巧拓展】————4、逻辑漏洞之支付漏洞

    支付漏洞 乌云案例之顺丰宝业务逻辑漏洞 案例说明 顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元.这个漏洞在其他网站很难存在,原因是页面交互都使用了对字段做签名.但是顺丰宝没做签名,导致支付金额可以 ...

  4. 管理类联考•逻辑——解题技巧汇总

    管理类联考•逻辑--解题技巧汇总 第一部分 形式逻辑 第1章 复言命题 母题1 充分与必要 充分条件 A是B的充分条件,记作A→B,读作"A推B",是指假如事件A发生了,事件B一定 ...

  5. 逻辑漏洞之修改响应包绕过登录校验

    逻辑漏洞是由于程序逻辑不严或逻辑太复杂,导致被***者利用,从而通过篡改相关数据来达到自己的目的,如绕过登录校验等! 实践操作 简单原理介绍   (这里只对本次实践原理的一个简单介绍)由于对登录的账号 ...

  6. 逻辑漏洞——业务逻辑问题

    普及常见业务逻辑漏洞与测试业务逻辑漏洞方法 业务逻辑 不同的项目有不同的功能,不同的功能需要不同的实现,实现这些核心功能的代码就叫业务逻辑.   比如实现两个数求和功能,所写的如何获得任意给定的两个数 ...

  7. 横向越权访问java_基于ThinkPhp5开发横向越权逻辑漏洞安全指南

    什么是纵向越权逻辑漏洞?纵向越权也是垂直越权指的是一个低级别攻击者尝试访问高级别用户的资源,例如本实验:普通用户获取管理员用户权限进行新增/删除便签操作. 越权漏洞是Web应用程序中一种常见的安全漏洞 ...

  8. 逻辑漏洞之越权、支付漏洞

    目录 逻辑漏洞 Web安全渗透三大核心方向 输入输出 登录体系.权限认证 业务逻辑漏洞分类 1.登录体系安全 暴力破解 cookie安全 加密测试 登录验证绕过 任意注册 2.业务一致性安全 手机号篡 ...

  9. Web安全 支付逻辑漏洞.

    支付逻辑漏洞的概括. 支付逻辑漏洞:是系统的支付流程中存在业务逻辑层面的漏洞. 支付逻辑漏洞:通常为选择商品和数量---选择支付及配送方式---生成订单---订单支付---完成支付. 常见的支付逻辑漏 ...

最新文章

  1. 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
  2. C++实现质因数分解
  3. java按升序冒泡排序_Java实现冒泡排序算法
  4. 磁盘分析工具Ncdu的简单使用和体验
  5. 域渗透基础之环境搭建(单域到组件域林)
  6. 小话设计模式三:发布/订阅模式
  7. 剑指offer_01
  8. 计算机机房建设目标是什么,计算机机房建设方案计划.doc
  9. linux查询tcp异常,linux服务器内存cpu 流量tcp异常信息记录python脚本
  10. C++中如何使用大整数__int 128
  11. JAVA NIO 实现群聊
  12. 神经网络搭建六步法扩展
  13. 金士顿DT100 G3 PS2251-07海力士U盘量产修复成功教程
  14. 计算机连接网线后无法上网,网线插电脑能上网插路由器不能上网了怎么办?
  15. centos linux系统后门程序
  16. 数据库实验2——使用SQL语句创建、修改和删除基本表
  17. 上海自考计算机本科考哪些专业吗,上海自考本科有哪些专业
  18. Java web学习day12 Cookie
  19. STC12CA560S2 ADC/PWM相关例程
  20. windows下将Nginx注册为服务

热门文章

  1. 【BZOJ3267】KC采花
  2. 企业开发的困境与变局
  3. U盘中毒之后打不开怎么办
  4. nginx屏蔽中国ip地址以及开放特定ip地址
  5. 许家印布局新能源汽车 恒大正式牵手柯尼塞格
  6. Solidworks 无法显示略缩图解决办法
  7. MQTT心跳机制介绍
  8. 雅虎统计 chedong.com 读者基于淘宝购物行为的访客网购兴趣分析
  9. MATLAB实现串口通讯的详细步骤
  10. Firebird使用入门