找回密码
 立即注册
注册 登录
×
热搜: 活动 交友 discuz
查看: 116|回复: 2

逻辑漏洞

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-9-23 17:21:08 | 显示全部楼层 |阅读模式
水平越权&垂直越权(小迪学习笔记)


       水平越权即通过与自身同级别的用户去进行一些操作。
        简单来说就是通过更改某个id之类的身份识别,从而使A账户可以去操作B账户.


        这里利用pikachu先登录一个kobe用户。
        利用burp进行抓包


       数据包中含有username这一个用户名标识,那么修改这个用户名。


       会不会查看到其他用户的信息呢?


       这就实现了水平越权。这个对于后续的渗透有比较大的作用。这个漏洞直接造成的危害并不会很大,但是之所以被称为高危漏洞,就是因为暴漏了用户的个人信息。
怎么发现同级别的用户名呢?一种就是注册的时候有的用户名会显示已存在,第二种就是通过查看对方主页信息也会有这种信息暴漏。
垂直越权就是通过比自身级别高的用户进行操作。
       使用低权限身份的账号,发送高权限账号才能发出的请求,从而实现高权限的操作。
       首先登录一个管理员用户。


        管理员有自己相应的权限。


       退出这个管理用户,然后登录一个普通用户。


       可以看到,它对于其他普通账户并没有操作的权限。


        这个时候如果能利用普通账户提权,去修改其他账户,那就是实现了垂直的越权。


      先利用admin账户添加一个用户,同时抓取该数据包。


       通过对这个数据包进行修改,来达到添加另一个用户的目的,但是并没有添加成功,那么就很有可能是由于数据包当中的phpsessid导致数据包不合法,重新访问当前页面,抓取相应的phpsessid将原数据包中的替换。




        用户添加成功。
        但过程当中就会有几个相应的问题:造成此类攻击在以上过程中需要有相应的数据包,在实际情况下截获这个数据包的难度有点大。一般笨办法就是盲猜,还有有的普通用户跟admin用户的操作界面是一样的,只不过是没有权限而已,还有就是可以通过获取网站的cms,下载源码,然后抓取所需的数据包。
靶场实例

       墨者


       登录该网站




        需要通过test账户,去获取这个马春生的相关信息。
        登录test用户,并进行抓包。


        内容当中,存在uid=testcard_id=20128880322。那我直接修改test=马春生,或者修改当前页面的card_id,会不会有可能直接登录到马春生的账户呢?
        直接将card_id复制下来,进行访问。




        可以看到相应用户的信息,也就得到了回显。
        直接利用burpsuit,进行爆破。


       可以看到有每一个用户的相应信息。


        但这么找得找到啥时候,一个回显一个回显的看得找到猴年马月去,而且马春生用的用户名不一定就是自己的名字啊。
        归根结底就是不知道这个马春生的相应id。
        那是不是可以看与马春生相关的信息存不存在,如果存在,就根据该信息去推断马春生个人空间页面的相应信息。本着这个思想,在主页面当中找到了马春生的个人照片。


       不太可能是通过管理员搜集个人照片以后一个一个插入到网页当中的,很有可能就是通过远程包含这个图片信息,直接显示到了网页当中。
       查看网页源代码。


        图片编号与card_id类似。直接再去找到与之id相应的数据包回显。


       密码采用了md5加密。


       对密码进行解密得到密码。




        得到相应的KEY。
原理

       这种水平越权就极有可能是因为前端安全问题造成,还可能是由于数据库的原因。
       前端安全问题:验证就是处在前端的,没有在后端进行验证。前端验证这个用户是否是管理员,代码界面部分进行可选显示。也就说你只是没有给我相应增删改查操作的页面,并不意味这我没有权限这么操作。
       后端安全问题:在数据库的user表当中管理员和普通用户同表也会造成这种问题。
idusernamepasswordusertype
1admin1234561
2xiaodi1111112
        这种情况下,代码是如何验证这个级别的?
        肯定是通过usertype来进行验证的。
        那么如果在访问网站数据包中存在传输用户的编号,用户组编号,或者类型编号的时候,尝试对这个值进行修改,就是测试越权漏洞的基本了。
越权漏洞工具

https://github.com/ztosec/secscan-authcheck
小米范越权漏洞(http://pan.baidu.com/s/1pLjaQKF)
burpsuite插件(authz)
修复防御方案

1.前后端同时对用户输入信息进行校验,双重验证机制。
2.调用功能前验证用户是否有权限调用相关功能。
3.执行关键操作前必须验证用户身份,验证用户是否具有操作数据的权限。
4.对对象引用的加密资源id进行限制,防止攻击者枚举id,敏感数据特殊化处理。
5.永远不要相信来自用户的输入,对可控参数实行严格过滤
数据篡改安全
登陆点应用功能安全问题
检测功能点、检测、危害、修复方案。
参考文章:https://www.secpulse.com/archives/67080.html
HTTP/HTTPS传输

        当采用HTTP传输的时候,一般账户跟密码是没有被加密的。


       类似这样,用户名跟密码会直接暴漏在外。
       这个时候是可能被爆破成功的。
       但是也存在有特殊情况,部分HTTP传输的时候也是有可能加密的。


       类似这样,但是一般都是采用字母数字加密,也就是md5进行加密的。
       部分HTTPS也有可能采用明文传输。


         那么完全可以利用字典对其进行爆破。
字典:github.com/huyuanzhi2/password_brute_dictinary
        采用burp直接进行爆破。


       查看错误状态下的状态码,以及数据包长度。(返回码:500,字符长度:2529)


       添加变量


       选择对应的字典,但是这么明文发送肯定还是不对的,需要对其先进行md5加密。


       这里可以直接采用*burp*的基本功能,添加给字符串的加密方式。


       查看相应的返回状态码,以及返回的字符长度。最终可以确定admin的密码。


       看到可以直接爆破成功了。
Cookie脆弱点验证

       在访问某一个网页时浏览器中会有相应的Cookie值。


       像这种网站一般都会有这么一个文件,


       可以看到直接检测登录的文件名,查看这个文件。


       这段代码其本身含义就是说如果cookie为空就会直接跳转到一个登录界面。那么想要绕过就比较简单了。


       这里给一个变量user=a。相当于跳过了跳转到登录界面的代码。


       可以看到直接进入了后台。
       以上都是通过代码分析达到目标的。那么如果没有代码该怎么利用这种漏洞呢?
       难度有点大,先清除一下现在浏览器当中的Cookie。


       抓一个干净的数据包,来针对性的分析。


       有时候也会抓到无用的Cookie。一般是看Cookie当中的值是否存在操作点。


       一般出现这种类型的Cookie值就可以尝试修改变量值,来进行进一步操作。
某商场系统商品支付逻辑测试-数据、订单。(0元购)

一般来说商品购买的流程就是
1、选择商品和数量:商品编号ID--修改其编号相应的商品也就进行修改
2、选择支付及配送方式:
3、生成订单编号:创建两种订单,如果说将A的订单编号修改为B的编号,那相应的价格信息也不会改变,但是商品的信息得到了修改。
4、订单支付:
5、支付状态:直接修改支付状态码,后台会不会显示支付成功呢?
常见的修改方法:
        替换支付、重复支付、最小额支付、负数支付、溢出支付、优惠券支付。


        修改对应的数量为88,数据包中也会有相应的体现。


        提交这个数据包。


       跳到了相应的支付界面。
       那如果说我直接将商品数量修改为负值呢?


       发送数据包。


       可以看到金额修改为-1000,成交价为0。
       这种就是最小成交价方式实现攻击。
       再尝试购买十件商品。


       点击提交后,截获数据包。


       可以看到产生了相应的订单编号。或者直接提交过后有的页面也会显示对应的支付流水编号。


       现在尝试重新下一个新的订单,这回购买1个产品。
       截获所需的数据包。


       将刚刚100000订单的那个订单编号替换上去。


       可以看到最后成交价格修改成了刚刚那个订单的价格。
       当然这种漏洞的实现过于理想化,所以成功几率接近为零。。。

       接下来采用的还是移动互联网开发这个站。


        选择产品,以后进行提交。抓取相应的数据包。


       修改相应的数量以及数量。


       可以看到通过修改价格也是可能成功的。
       现在这个产品名叫大米手机CMS,那是不是可以通过直接修改商品的名字来实现目的。
       换一个产品。


       抓取对应的数据包。获取name的值。


       我现在想要用5400去买6000的产品应该怎么操作。
       先购买5400的产品,抓取相应的数据包。将上图中的id以及name值修改为6000产品的信息。提交数据。


       可以看到也能够实现0元购。
       有的在触发支付接口的时候,也会有替换支付的风险存在。


        换成支付宝交易。


       这个时候可以直接将这段变量修改为其他的支付接口。


       这个就好比去超市把对方的收款二维码直接换成了自己的。
找回重置机制


客户端回显



获取真实的验证码,拦截该数据包。


可以看到验证码会直接在数据包中存在回显,这种就称作为客户端回显。
Response状态码


开启拦截后,用户访问服务器,会先将数据包发送给burp。然后再传输给服务器,同样服务器返回数据包也是经过了这样一个流程。
那么通过修改服务器返回数据包的一个状态码,也能够实现最终目的。
绑定手机号的时候随便输入验证码。


抓取回复数据包。


可以看到回复的数据包也有抓到。


修改下面这个状态码为1
这种方式需要看验证是在前端验证还是后端验证,如果是后端验证,那么在这里修改状态码也并没有什么意义。
找回流程绕过




先以一个正常的用户去申请重置密码。获取到验证码。然后修改想要修改的用户的手机号。


大概原理就是手机号码与验证码未绑定,验证码是通用的。


账号绑定当中进行绑定,获取相应的验证码。


得到相应的验证码


接口调用乱用


短信轰炸&&电话轰炸

作者在编写程序的时候,存在有专门发送短信验证码,推广信息等等的一个接口,短信轰炸都是将这类型接口给集中起来,然后针对一个目标发送信息,造成轰炸的效果。
验证安全

在验证过程当中,数据包当中很可能拥有token,这个元素主要作用在于能够确定数据包的唯一性和合法性。


分类:图片、手机或邮箱、语音、视频、操作等
原理:验证生成或验证过程中的逻辑问题。
危害:账户权限泄露、短信轰炸、遍历、任意用户操作等
漏洞:客户端回显,验证码复用,修改返回值。
工具:Pkav HTTP Fuzzer
访问网页,复制图片链接。


如果想要爆破的话,就只能识别这个图片。
访问这张图片,截取数据包数据。


粘贴值上述工具当中。


可以自动识别验证码的图片。
但这种软件也有缺点,没办法自己编辑某种功能。无法与burp结合使用。
所以还是尝试使用一下burp插件比较好。
Burp插件--captcha-killer

安装好插件以后
开始抓一个正常访问验证码页面的数据包。


发送数据包到插件当中。


在红框标记的地方添加识别的地址。


然后进入到爆破界面,将验证码变量对接到识别到的结果中。


验证码绕过本地及远程验证

本地演示-pikachu验证



如何验证是否存在这种验证绕过的漏洞?




一:检测是否可以复用,及一次验证成功后是否还会再次验证?
比较两次发送数据包查看是否回显相同。


修改用户名及密码,其余信息不变。


这种便是存在验证码复用的情况。
之所以存在这种问题就是因为后端在验证过程结束后没有删除临时的seesion。


另一种就是验证过程存在于前端界面当中的。
想要验证是否是前端验证,其实可以直接查看网页的源代码,从源代码当中去审计。


当然有的网页也是调用了一个js文件,验证是通过调用这个文件去进行验证的。如果存在这种问题,那就只能抓包进行验证了。
类似于这种。


服务器去请求了js文件,js文件代码为验证代码。
如果是这种验证,那么只需要输入一次正确的验证码,在burp中重复发包就可以了,后端不会再进行验证。
Token



等发送一次数据包都会有属于其本身的一个token。
如果可以识别其加密方式,就可以破解其规律。就是机会有点小而已。
但是部分网站token也是会有回显的。


利用burp来实现相关方面的攻击。


但是相关字典方面应该怎么选择?(线程只能选择为1,因为其原理是发送一个数据包以后得到回传数据包,将回传的数据包当中的token提取出来以后填入字典当中)


选择重定向。


选择相应的cookie字段。


选择对应的攻击方式。
可以看到自动出现了正则。
然后开始爆破就好。
Callback回调



可以看到有相应的去请求callback之后的地址。
这段网址是会回显到页面当中的,这种就可以考虑是否可以利用远程跨站什么的。

其实逻辑渗透就是针对功能点来进行研究,callback就有对应的关键字,id就是id。
那完全可以利用burp大规模的爬虫,获取大量的数据包后去搜索相应的关键字。


可以看到出现了相应的数据包。


开始在这些数据包当中选择关键字。


搜索到关键字后针对性的开始进行相应的攻击。
回复

使用道具 举报

0

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2025-2-21 02:32:01 | 显示全部楼层
嘘,低调。
回复

使用道具 举报

1

主题

8

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2025-3-19 06:20:01 | 显示全部楼层
撸过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 黑客通

GMT+8, 2025-4-6 12:48 , Processed in 0.111047 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表