逻辑至上——内含各种酷炫姿势

前言

与传统类型漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像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天能发现的,很多时候需要耗时几天甚至更久,需要分析业务请求才能发现,所以要头脑冷静急不得。

作者:滴滴出行DSRC
来源:51CTO

时间: 2024-10-30 12:52:34

逻辑至上——内含各种酷炫姿势的相关文章

PS教你快速打造酷炫抢眼的逆光场景

  需求方说:"要有光!"于是,便有了光-- 平时浏览一些优秀作品的时候,经常会看到一些光效处理非常棒的作品.有时我们看后会反问自己:"这些使页面看起来高大的光是怎么打上去的呢?今天搜狐同学通过一个案例来教大家快速打造逆光场景.来找属于你的光吧! 当然,这只是本人自己常用的方法,方法是活的,只要能够做出好的效果就行,这个案例也算不得高大上,只希望那些需要光的同学能够从这篇教程里找到属于自己的光. 先来看一下最终的效果: 这是一个天龙全球争霸赛复活赛的专题页面,这里也许有人会有

移动社交时代 如何打造酷炫的用户体验

大家好,我是来自听云的常旭,今天我带来的内容是不体现无未来,如何打造酷炫的用户体验,相信各位还记得在以前我们在做转账这个动作的时候,可能要去到银行的柜面,而慢慢出现了ATM机,而再往后大概在2003,2004年的时候又有了网银那套系统,在那个年代我们认为网银就是一个面子工程,但后来通过现在的视角再回看的时候我们会发现银行大部分的业务都是来自于网银,而今天我们更多的动作是通过一个移动的APP做转账,那在这个过程中我们会发现实际上每一个时间点都会有不同的应用出现,而在一个应用刚出现的这个过程中它会有

JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)_java

一.课程概述 在Web应用系统开发中,文件上传功能是非常常用的功能,今天来主要讲讲JavaWeb中的文件上传功能的相关技术实现,并且随着互联网技术的飞速发展,用户对网站的体验要求越来越高,在文件上传功能的技术上也出现许多创新点,例如异步上传文件,拖拽式上传,黏贴上传,上传进度监控,文件缩略图,大文件断点续传,大文件秒传等等. 本课程需要的基础知识: 了解基本的Http协议内容 基本IO流操作技术 Servlet基础知识 javascript/jQuery技术基础知识 二.文件上传的基础 对于文件

WPF换肤之六:酷炫的时区浏览小精灵

原文:WPF换肤之六:酷炫的时区浏览小精灵 由于工作需要,经常要查看到不同地区的 当前时间,以前总是对照着时区表来进行加减运算,现在有了这个小工具以后,感觉省心了不少.下面是软件的截图: 效果图赏析   在界面上,有能够冉冉升起的太阳或者月亮,有缓慢飘动的浮云,有青葱翠绿的花叶, 当然,也有显目的时区显示.如果要是放在WinForm时代,要实现这样的界面,真的是繁琐和复杂,但是在WPF中,利用XAML控制前台界面,利用CodeBehind控制窗口拖动,日月变换等等逻辑,真的是简便而且效果强大.其

PS中怎么使用线条制作酷炫的图案?

PS中怎么使用线条制作酷炫的图案?   1.打开Photoshop软件,新建一个800*600的画布,背景为白色,像素为300,如下图所示. 2.在主菜单栏中,选择[编辑]-[填充],并在弹出的填充对话框,选择填充黑色的前景色,如下图所示. 3.在左侧的菜单栏中选择"编辑自定义图形",然后在图形中选择"蝌蚪图案",并前景色设置为白色,在黑色画布上绘制一个蝌蚪图案,如下图所示. 4.在主菜单栏中选择[滤镜]-[扭曲]-[旋转扭曲],并在弹出的旋转扭曲对话框,将数值设置

酷炫的汽车仪表盘UI设计合集

  随着智能汽车的崛起,车载智能系统的设计也成了各大厂商越来越关心的事情了.相比于手机和平板的UI设计的日新月异,目前市场上的车载仪表盘简直是上个时代的遗老.好在车企有心图变,而科技企业也觊觎着这个新兴领域,看看今天文中的这些狂拽酷炫的仪表盘概念设计(部分高端车型已经用上),我想你应该感受到一个新时代来临之前的躁动. 来自移动端的UI设计的竞争依然如火如荼的继续着.Google 和苹果正按照每年一个新版本的速度推进着各自的移动端系统,来自微软的Windows Phone,蠢蠢欲动的三星Tizen

通过JQuery实现win8一样酷炫的动态磁贴效果

相信大家喜欢这个界面无非也是喜欢它的动态磁贴.刚好今天研究了一下如何通过JQuery在网页上模仿这种效果,就贴出来给大家喷一下.虽然是一些很低级的技术,但是也希望有需要的朋友可以参考下   我个人表示非常喜欢微软新一代的产品,先不管它产品的成熟与否,但是它带来的是全新的产品.所谓全新,是指在用户体验上,苹果这些年的成功使得所有 产品都在模仿它的界面,包括安卓在内,不知道大家的感觉如何,反正我是对这些圆角矩形产生了审美疲劳(苹果以及安卓的粉丝勿喷,这里仅仅是从界面上评价, 事实上从整体上来说,微软

设计参考:25个酷炫的泼溅效果网站设计实例

泼溅可以用于网站和图形设计以制作有趣的可以吸引用户的注意力的效果.本文中我们将展示很多来自于各种不同类型的设计的实例.在你的项目中使用这种效果的最简单的方法是发挥Photoshop笔刷的优势,这可以大大的减轻你的工作量并快速创建酷炫的泼溅效果. 1.Nike 2.Technix 3.Design Was Here 4.Chaotic Typo 5.Colours 6.The New Classics 7.USMP: Carrera con Futuro 8.Free Your Mind

WEBJX收集65个酷炫的单页面设计实例

我们已经收集过很多漂亮的单页面网站设计,使用此类设计风格的大多是个人作品集页面,它们使用简约的风格,大胆而简单的组织页面元素和内容,为用户提供不一样的浏览体验.单页面网站设计是"一目了然"的网页设计的一个典型案例(当然,"一目了然"的意义远不仅仅是这一点). 看设计师在单页面上能做些什么是很有趣的事情,因为现代设计师喜欢做一些新的尝试并观察人们如何与他的作品交互.尽管这并非一个可以随便追随的常见的趋势,但是作为一种新的风格,越来越多的设计师注意到它们并在其作品中使用