访问控制和权限提升漏洞-攻击示例(三)

admin 2022年7月28日12:51:20评论73 views字数 2424阅读8分4秒阅读模式

在本节中,将通过攻击示例场景进一步讨论什么是访问控制安全,描述权限提升和访问控制可能出现的漏洞类型。

 


水平提权

当用户能够访问属于另一个用户的资源而不是他们自己该类型的资源时,就会出现水平权限提升。

 

在某些应用中,可利用的参数可能没有可预测的值。

例如,应用程序可能使用全局唯一标识符(GUID)来标识用户,而不是递增数字。在这里,攻击者可能无法猜测或预测另一个用户的标识符。但是,属于其他用户的GUID可能会在应用程序引用用户的其他地方公开,例如用户消息或评论。

 

场景试验-由请求参数控制的用户ID(不可预测):

https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-unpredictable-user-ids

场景说明:

这个试验场景在用户账户页面存在水平提权漏洞,但使用GUID来标识用户。

试验目的:

要完成这个试验,需要找到carlosGUID,获取用户carlosAPI密钥并提交。

攻击过程:

先用wiener账号登录,刷新下/my-account后注意这个请求在提交用户名参数的时候用了GUID,将这个请求发送到Repeater

访问控制和权限提升漏洞-攻击示例(三)

 

接下来去找用户carlos发的帖子,找到后查看响应包,可以看到carlosGUID

访问控制和权限提升漏洞-攻击示例(三)

 

把这个GUID替换到Repeater的请求中并发送,可以获取到API密钥,将此密钥在页面上方提交即可完成本试验

访问控制和权限提升漏洞-攻击示例(三)

 

试验小结:

这个攻击其实是利用了两个步骤,首先是利用信息泄露的漏洞获取到每个用户特有的GUID,随后再利用GUID来进行水平提权攻击。

 

在某些情况下,当用户未经授权访问资源时,应用程序发现后会重定向到登录页面。但是,这个重定向的响应可能仍然包含目标用户的一些敏感数据,因此攻击仍然可能成功。

 

场景试验-重定向泄露用户ID

https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-data-leakage-in-redirect

场景说明:

这个试验场景包含访问控制漏洞,其中敏感信息在重定向响应中泄露。

试验目的:

要完成这个试验,需要获取用户carlosAPI密钥并提交。

攻击过程:

wiener账号进行登录,刷新下/my-accout页面后将这个请求发送到Repeater

访问控制和权限提升漏洞-攻击示例(三)

 

修改参数id后面的用户名,响应包虽然是重定向,但是在这里面有包含所需的API密钥,复制密钥后在页面上方提交即可完成本试验

访问控制和权限提升漏洞-攻击示例(三)

 


水平到垂直的提权

通常情况下,通过危害更高权限的用户,水平提权攻击可以变成垂直提权攻击。

例如,水平提权可以让攻击者重置或捕获属于另一个用户的密码,如果这个用户是管理员账户,那么攻击者就可以获得管理访问权限,从而变成垂直提权。

 

场景试验-用户ID由请求参数控制密码泄露:

https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-password-disclosure

场景说明:

这个试验场景的用户账户页面包含当前用户的现有密码,并预先填写在屏蔽输入中。可以使用wiener:peter进行登录。

试验目的:

要完成这个试验,需要找回管理员密码,然后用它删除carlos

攻击过程:

wiener这个账号进行登录,刷新下/my-account后查看下响应包,可以看到响应包中会包含这个账户的密码

访问控制和权限提升漏洞-攻击示例(三)

 

把这个请求发送给Repeater,把id后面的用户名改成"administrator"并发送,从响应包中检索到管理员密码后进行登录,删除carlos用户即可完成本次试验

访问控制和权限提升漏洞-攻击示例(三)

 


多步骤流程中的访问控制漏洞

许多网站通过一系列步骤实现重要功能,当需要捕获各种输入及选项,或者是用户在执行操作之前需要查看和缺陷详细信息时,都会进行访问控制。

例如,更细用户详细信息的管理功能可能涉及以下步骤:

◆加载包含特定用户详细信息的表单;

◆提交更改;

◆查看更改并确认。

有时,网站会对其中一些步骤实施严格的访问控制而忽略其他步骤。例如,假设访问控制正确应用第一步和第二步,但是没有应用于第三步,这是因为网站假设用户只有在已经完成了第一步后才能到达第三步,那么攻击者就可以通过跳过前两个步骤直接提交带有所需参数的第三步请求来获得对该功能未经授权的访问。

 

场景试验-一步没有访问控制的多步流程:

https://portswigger.net/web-security/access-control/lab-multi-step-process-with-no-access-control-on-one-step

场景说明:

这个试验场景有一个管理面板,其中包含有缺陷的多步骤更改用户角色的过程,可以通过管理员账号来熟悉管理面板,administrator:admin

试验目的:

要完成这个试验,需要使用wiener:peter登录并利用有缺陷的访问控制来提升自己成为管理员。

攻击过程:

用管理员账户进行登录,随后进行管理面板,将carlos账户进行提权操作,会要进行二次确认,将二次确认的这个请求发送到Repeater

访问控制和权限提升漏洞-攻击示例(三)

访问控制和权限提升漏洞-攻击示例(三)

 

随后登出管理员账号,用wiener账号登录,把session替换到Repeater那个请求中去并发送,即可提权成功完成试验

访问控制和权限提升漏洞-攻击示例(三)

 

访问控制和权限提升漏洞-攻击示例(三)


信息泄露漏洞-概念梳理

业务逻辑漏洞-概念梳理

命令注入攻击(上)
目录遍历攻击(上)

份验证漏洞-概念梳理

SQL注入攻击-检索隐藏的数据
HTTP高级请求走私-响应队列中毒
HTTP Host头漏洞攻击-概念梳理



原文始发于微信公众号(H君网安白话):访问控制和权限提升漏洞-攻击示例(三)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月28日12:51:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   访问控制和权限提升漏洞-攻击示例(三)http://cn-sec.com/archives/1205445.html

发表评论

匿名网友 填写信息