专栏名称: 渗透师老A
不一样的角度学习五花八门的渗透技巧,了解安全圈背后的故事
目录
相关文章推荐
庞门正道  ·  爱吃鱼吗?这个不能吃! ·  2 天前  
笔吧评测室  ·  首款酷睿 Ultra 5 225H ... ·  2 天前  
笔吧评测室  ·  2025 款华硕无畏 Pro14 笔记本 ... ·  2 天前  
笔吧评测室  ·  聊一款仅售3680元的广色域高刷屏笔记本 ·  3 天前  
51好读  ›  专栏  ›  渗透师老A

史上最详细!逻辑漏洞全方位总结

渗透师老A  · 公众号  ·  · 2022-12-20 09:49

正文

一、水平越权

1.1、原理

通过更换某个ID之类的身份标识,从而使得A账号获取(修改,删除等)B账号的数据;

1.2、容易出现的地方:

一般越权漏洞容易出现在权限页面(需要登陆的页面)增,删,改,查的地方,当用户对权限页面内的信息进行这些操作时,后台需要对当前用户的权限进行校验,看其是否具备操作权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞;

1.3、案例演示

1)我们登陆到pikachu靶场,首先看一下提示:

2)一共两个用户,我们登陆到kobe用户,来测试越权到luck用户,我们首先登录到kobe账户里面,点击查看个人信息,抓到包;

3)我们将这里的kobe改为lucy,放包;

4)成功越权到lucy用户

1.4、危害

在游戏中,假如我们是平民玩家,我们仅仅通过修改ID,就变成了其他玩家,甚至有可能变成氪金大佬;

二、垂直越权

2.1、原理

使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作;

2.2、容易出现的地方

看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能;

2.3、案例演示

1)我们首先用admin/123456,进行登陆;

2)我们添加用户进行抓包,然后放在重发器;

3)我们紧接着用pikachu/000000,进行登陆,抓包,将pikachu的cookie替换admin用户的cookie;

4)我们发送包;

利用pikachu用户利用admin的cookie成功创建了test账户;

2.4、危害

信息泄露,篡改用户信息,严重者可修改密码等等;

三、墨者靶场演示

1)打开靶场

2)登录给出的test用户

3)我们这里通过抓包进行分析,对card_id进行分析

4)发到测试器进行爆破

通过前端分析,他可能是31 6

5)看响应

输入账号,对密码进行MD5解密

6)登录成功

四、越权漏洞检测-burp插件-autorize使用

Autorize是一个旨在帮助渗透测试人员检测授权漏洞的扩展,这是Web应用程序渗透测试中比较耗时的任务之一;

将低权限用户的cookie提供给扩展程序并使用高权限用户浏览网站就足够了,该扩展会自动重复每一个请求与低权限用户的会话并检测授权漏洞;

除了授权漏洞之外,还可以在没有任何cookie的情况下重复每一个请求,以检测身份验证漏洞;

该插件无需任何配置即可工作,但也是高度可定制的,允许配置授权执行条件的粒度以及插件必须测试那些请求,那些不需要,可以保存插件的状态并以HTML或CSV格式导出授权测试报告;

报告的执行状态如下:

  • 绕过!-红色

  • 强制执行!-绿色

  • 强制执行???(请配置强制检测器) -黄色

4.1、安装

1)首先我们需要下载Jython Standalone:https://www.jython.org/download

我们需要选择红框里面的进行下载:

2)配置如下:

3)我们配置好之后,接着安装!

4.2、使用(pikachu为例)

1)获取低权限的cookie,我们在垂直越权的目录,首先获取pikachu/000000的cookie;

2)接着我们去访问高权限的账号,这里需要注意,先打开插件的开关,然后再去访问高权限的账号;

3)接着就会出现结果;

左边一列 红色代表存在越权可能;

右边一列 红色代表存在未授权访问可能;

接着点击 三代表响应长度的数字,在右侧查看具 体响应;

如果是 响应中 包含敏感数据,或者一些增删改的post请求,就可以报bug了;

五、支付漏洞

5.1、直接修改商品价格

在支付过程中,购买商品一般分为三个步骤:订购,确认信息,付款,那么这个修改价格具体时修改那一步时的价格?在我看来你可以在这三个步骤中随便一个步骤进行价格的修改,进行测试,如果前面两步有验证机制,那么你可在最后一步付款进行抓包尝试修改金额,如果没有在最后一步做好检验,那么问题就会存在,其修改的金额值,你可以尝试小数目或者负数,去测试;

参考案例:http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0226613

5.2、修改支付状态

1)这个很好理解,就是假设A商品,我们进行了购买,用bp进行抓包,我们看到某一个字段;

0:表示支付成功

1:表示支付失败

假设我们暂时还未支付,bp显示的是1,我们将1修改为0;

2)还有我们去购买A商品,是10元,B商品是1000元,我们先购买A商品,将A商品的数据包,给B商品,那么我们就能通过10元购买10000元的商品;

我们抓取购买包,放在重放器,这个商品为5400元;

我们将数据包放在重放器,重要的字段,我们做一下记录;

index.php?m=Member&a=gobuy&iscart=0&id=69&name=%E5%A4%A7%E7%B1%B3CMS%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91%E4%B8%93%E7%89%88&qty=1&price=5400>ype=%E7%81%B0%E8%89%B2&pic=/damicms/Public/Uploads/thumb/thumb_1393206337.jpg

我们继续在购买6000元的手机;

抓包,根据经验,我们将5400手机的数据包,放在6000元手机这里;

两个数据包进行对比:

我们将5400元手机的数据包替换掉6000元 手机的数据包;

这里商品的价格就变成了5400;

5.3、修改商品的数量

支付中。假如1个馒头10元钱,那么10个馒头就是100元,那么-1个馒头那?这种会不会产生零元购问题那?

我们可以看到一个手机为6000元,我们进行抓包;

这里qty这个字段非常可疑,我们将它修改为10,放包;


订单金额变成了60000万了,那么我们的猜想完全正确,我们将它的数量改为-1,看看什么情况;

这里的价格变成了-6000,说明漏洞确实存在;

5.4、另类支付

我们在支付的时候,常常会给你一些优惠卷,积分,满减等等,而这些值同样都是由操作的空间

1)修改优惠卷

一般优惠卷进行消费往往出现在第二个步骤当中,确认购买信息,这个页面当中,你可以选择相关的优惠卷,我们直接修改优惠卷的金额,等于商品的价格,或者直接将其改为负数,最后进行支付,如果说没有对这个点加以验证,那么直接可以支付成功;

2)修改优惠卷金额及业务逻辑问题

当你修改其优惠卷值为任意值或负数想要支付的时候,会显示支付失败,或者金额有误等一些提示,可能这个时候,你会选择放弃,但是当你点开个人中心的时候,点击订单详情,如果存在这个逻辑问题,那么此时在你刚刚修改优惠 卷金额后点击下一步支付的时候,其实已经产生了订单,在订单的金额内,你可以看到支付金额为0,然后点击支付就可以支付成功;

这里好友一个小技巧,有可能会支付失败,但是如果你找到的这个问题是一个业务分站点,如果有自带的钱包功能,那么你就可以利用这个自带的钱包功能去支付这个订单,而不要利用其他支付类型,就可以支付成功了;

3)修改积分金额

有些网站的积分,比如你消费了多少,就可以拥有一定量的积分,这个积分可以在你付款的时候进行折扣,如果这个积分的金额没有做好校验,那么你在支付当中将积分减去的金额变成商品本身的价格,或者负数,是不是就可以产生0原购物了;

4)满减修改

我们在双十一的时候,很多会有满300减100,这种功能,我们能不能将金额修改为满101减100那?

参考案例:http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0214319

5.5、修改支付接口

一些网站支持多种支付的接口,微信,支付宝,还有第三方的支付工具,然后每一个接口的值不一样,如果逻辑设计不当,那我随便选择一个点击时进行抓包,然后修改为一个不存在的支付接口,如果接口的相关处理没有做到位,是不是会支付成功;

5.6、重复支付

淘宝,京东会有很多试用卡。一张卡可以试用一个商品,我们可以将这个试用的商品数据包多次重复提交,如果服务端没有进行严格的校验的话,就会产生很多这样的订单,这时候,我们将这个商品退掉,会怎么样?我们会不会退回很多试用卡?

5.7、最小支付和最大支付

1)最小支付







请到「今天看啥」查看全文