逻辑漏洞与越权
越权
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
水平越权
在同一级别的权限之间跨越边界,例如向其他用户发送私人消息、读取其他用户的文件等,从而绕过某些限制和防御措施
特征:id变,类型不变
pikachu靶场为例
如图lucy只能查看个人信息
url中存在username参数
http://10.9.47.181/pikachu/vul/overpermission/op1/op1_mem.php?username=lucy&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF
将lucy改为别的用户,实际环境中可以选择爆破
改为lili发现可以查看lili的信息
如果出现username
id
uid
u
user类似的,皆可尝试
垂直越权
攻击者通过获取比其本身权限更高的权限,例如管理员权限、根用户权限等,从而执行敏感操作或访问受保护的资源。
特征:id不变,类型变
使用admin新建用户,将cookie换成pikachu的
在登录pikachu的状态时,访问admin创建用户的页面,发现pikachu可以实现创建用户
创建成功
越权漏洞危害
水平越权可能造成敏感信息泄露
垂直越权可能造成服务器权限丢失,普通用户可能会执行一些上传操作
如何挖掘:
可以在url中寻找诸如id,username,user等类似关键字,在登录状态下,可以尝试更改这些数值,看看是否有变化,尝试使用authz等插件功能,将cookie值修改或删除,对比原响应报文和修改后响应报文大小及状态码是否一致
如何防御:
在用户认证的时候使用多方认证,除了cookie认证,还验证关键字段的值
authz
这个插件可以查找是否存在越权漏洞
pikachu水平越权为例
登录lili,然后开启bp代理点击查看个人信息
看到之后关闭
找到这个包,直接发给authz
点击run后获得响应状态码
删掉cookie看看状态码
前后一致则cookie可能无效,可能存在漏洞
逻辑漏洞
常见业务逻辑漏洞
身份验证与授权:在身份验证和授权过程中存在的漏洞可能导致未经授权的用户获取敏感信息或执行不当操作。例如,没有正确实施角色和权限控制,或者在密码重置功能中存在漏洞。
会话管理:会话管理漏洞可能使攻击者能够劫持用户的会话或伪造会话令牌,从而冒充合法用户进行未经授权的操作。
输入验证与过滤:缺乏对用户输入进行恰当验证和过滤可能导致代码注入、跨站脚本攻击(XSS)等安全问题。攻击者可以通过向应用程序输入恶意数据来执行任意代码或篡改网页。
数据保护与隐私:在处理用户敏感数据时,包括存储、传输和访问控制等环节的不安全实践可能导致数据泄露或违反隐私规定。
错误处理与异常管理:不正确处理错误和异常情况可能导致应用程序暴露敏感信息,或者提供有用信息给潜在攻击者。
权限提升:存在权限提升漏洞可能允许攻击者通过利用应用程序逻辑错误,获取超过其正常权限的访问权限。
针对业务逻辑的攻击:此类漏洞是特定于应用程序业务流程的。攻击者可以通过不正确地操作或绕过业务逻辑来实施攻击,例如恶意修改订单金额、非法使用优惠券等。
重放攻击:缺乏请求和响应的合适验证和令牌机制可能导致攻击者能够重放旧的请求,重复执行某些操作。
常见利用场景
滥用优惠券:攻击者可以通过篡改应用程序中的优惠券逻辑来获取大量优惠券或重复使用同一张优惠券,从而获得不当的经济利益。
篡改订单金额:攻击者可以修改应用程序中的订单金额验证逻辑,以支付更低的金额从而获取不当的价格优惠。
超越授权范围:攻击者可能利用应用程序中的逻辑缺陷,绕过角色和权限控制,从而获得比其正常权限更高的访问权限。
绕过支付验证:攻击者可能利用应用程序中的漏洞绕过支付验证流程,使其能够以未经付款的方式获得商品或服务。
假冒身份:攻击者可能通过修改身份验证流程来伪造身份,冒充合法用户进行未经授权的操作。
篡改数据:攻击者可能修改应用程序中的数据验证逻辑,以修改关键数据(如账户余额、库存数量等),从而获得不当的利益。
会话劫持:攻击者可能利用会话管理漏洞劫持合法用户的会话,获得其敏感信息或冒充其进行操作。
数据泄露:通过利用应用程序中的漏洞,攻击者可以获取存储在应用程序中的敏感用户数据,如个人身份信息、支付信息等。