逻辑越权

逻辑漏洞

水平垂直越权

概念

水平垂直越权

水平

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

垂直

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

未授权

通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作。(无需账户登录)

原理

前端安全造成:界面

判断用户等级后,前端代码界面部分进行可选显示

有的页面不显示,不代表不存在,只是权限不够

漏洞点在只是没有显示,但是没有限制身份的访问

后端安全造成:数据库

如果在访问网站数据包中有传输用户的编号、用户所属组编号或类型编号时,就可以尝试对这类值进行修改,这也是最基本的越权漏洞测试

例如:

id username password usertype
1 admin 123456 1
2 1ceC0la 654321 0

当登陆时,会调用数据库判断admin和1ceC0la的权限,即此处的usertype的值

修复防御方案

1.前后端同时对用户输入信息进行校验,双重验证机制

2.调用功能前验证用户是否有权限调用相关功能

3.执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限

4.直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理

5.永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

靶场

Pikachu-本地水平垂直越权

https://blog.csdn.net/weixin_50699777/article/details/116047307

墨者学院-身份认证失效漏洞实战

wp

访问靶场所在地址后

身份认证失效漏洞实战-wp1

登录所给的test账户

身份认证失效漏洞实战-wp2

打开burp刷新页面抓包,发现一个有id的包

身份认证失效漏洞实战-wp3

发到Repeater发包看响应的内容,有用户名,和经过加密的密码

身份认证失效漏洞实战-wp4

此处密码有32位,应该是md5加密

网上搜索md5解密,来解密这段密文

身份认证失效漏洞实战-wp5

结果确实是test,故这是用md5来加密的

之后改id值继续发包,把末位的22改成21

身份认证失效漏洞实战-wp6

有响应数据,说明存在越权漏洞,因为看到了不属于当前用户的信息

于是将数据报发到Intruder爆破存在的id账户信息

身份认证失效漏洞实战-wp7

题目是让我们找到马春生的信息,故需要登录马春生的账户

这里需要找到马春生的用户名,注意到首页登陆页面马春生的头像

身份认证失效漏洞实战-wp8

右键在新标签页中打开图片

身份认证失效漏洞实战-wp9

发现图片名命和之前发现的id类似,于是就去对比,发现是匹配的

身份认证失效漏洞实战-wp10

于是解密加密数据进行登录

用户名:m233241

password解密结果:9732343

登陆成功,得到key

身份认证失效漏洞实战-wp11

越权检测工具

小米范

https://www.cnblogs.com/fsqsec/p/5697517.html

Burpsuite插件Authz

https://www.cnblogs.com/MiWhite/p/7020520.html

中通安全开源项目之越权漏洞自动化检测

https://www.cnblogs.com/starrys/p/13935730.html

登陆脆弱及支付篡改

登陆应用功能点安全问题

HTTP/HTTPS协议进行密码抓取时,一般HTTPS都是加过密的,HTTP直接是明文,也存在HTTP协议也加密了的情况

若有加密数据需要知道采用的什么加密方式才能进行爆破

Cookie脆弱点验证

黑盒情况:登陆后看Cookie有无可操作的参数

白盒情况:代码审计,看代码逻辑

数据篡改安全问题

商品购买流程

选择商品和数量->选择支付及配送方式->生成订单编号->订单支付选择->完成支付

常见篡改参数

商品编号ID,购买价格,购买数量,支付方式,订单编号,支付状态等

修改方法

替换支付

重复支付

最小额支付

负数支付

溢出支付

优惠券支付

参考

支付漏洞总结

资源

https://www.zblogcn.com/zblogphp/

爆破字典

https://pan.baidu.com/s/1fJaW23UdcXcSFigX0-Duwg 提取码:xiao

找回机制及接口安全

找回重置机制

1.验证码在客户端回显(在浏览器或数据包中能看到服务端发送的验证码)

phpyun平台绑定手机号码存在客户端数据包回显验证码

客户端数据包回显验证码

2.Response状态值(类似false改成true,通过验证)

phpyun平台绑定手机号码存在修改Response状态值,造成该漏洞的原因是前端代码的验证问题,主导权在本地不是在服务端校验,相当于是将服务端的回显值在本地判断后进行验证

我们先看正确的Response和错误的Response

正确的Response

错误的Response

对比发现正确回显为1,错误回显为3

我们只需要将回显值的包用burp抓到,并将错误回显改为正确回显即可

用burp抓包,在Request请求包页面右键,选择Do intercept里面有一项Response to this request

burp抓响应包

选择后便能抓到服务端的Response回复包

burp抓响应包

将3改为1,就能绑定成功

绑定成功

3.验证码爆破

4.找回流程中根据数据包的逻辑跳过验证(丢掉验证包)

例如:

流程为:

  • 发送验证码
  • 验证
  • 重置密码

我们可以丢掉第二个数据包,或者把第二个数据包替换成第三个数据包,达到跳过验证目的

靶场

墨者学院-登录密码重置漏洞分析溯源
wp

https://blog.csdn.net/weixin_39998158/article/details/100557216

接口乱调用

1.短信空炸

2.来点轰炸

资源

weipan21/phpyun

验证码与token及接口

安全验证

验证码安全

分类

图片,手机或邮箱,语音,视频,操作等

原理

验证生成或验证过程中的逻辑问题

危害

账户权限泄露,短信轰炸,遍历,任意用户操作等

漏洞

验证码复用

https://blog.csdn.net/qq_41901122/article/details/109451715

一般是session没有清除导致的

绕过

前端:

用浏览器查看是否有与验证码验证相关的代码,若有直接通过抓包发送绕过本地验证即可

后端:一般复用绕过

客户端回显(前文已有)
爆破(前文已有)

token安全

token客户端回显

https://blog.csdn.net/qq_41542761/article/details/102893563

验证码识别插件工具使用

captcha-killer v0.1.2

使用burp插件captcha-killer识别图片验证码

reCAPTCHA v1.0

Pkav_Http_Fuzz

https://sec.kim/2019/01/07/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7%EF%BC%9Apkav-http-fuzzer/

接口安全问题

类型

调用,遍历,未授权,篡改

调用案例

短信轰炸

遍历案例

UID等便利

参数篡改

墨者学院靶场

未授权访问

与越权的区别

Jboss,Jenkins,ldap,Redis,elasticsearch,MenCache,Mongodb,Rsync,Zookeeper,Docker

资源(来源:http://www.xiaodi8.com)

未授权访问漏洞集合

web攻防之业务安全实战指南