基本信息
主页,进入主页提示如下,访问/api/v1/进行穷举。
图1:主页
/user,需要X-Token。
图2:/user的Get请求
/status
图3:/status
/secrets,状态码403,使用403工具无法绕过。
图4:/secrets
Flag 0
/config路径发现flag。
考察:字典遍历
图5:/config
Flag 1
/user界面,使用post请求,加上username&password,成功注册用户,提示去/user/login登录。
考察:测试不同的请求方式
图6:用户注册
Flag 2
提示:Maybe you can edit your profile? but what fields can you change?
/user/login界面post方式进行登录,带上参数username&password,得到token。
图7:用户登录
使用token,在/user界面使用GET请求,添加X-Token,返回用户信息:
图8:X-Token访问/user
根据提示,使用了不同的请求同,使用put请求时,提示没有提交信息。
图9:PUT请求/user
添加任意数据体,进行暴力破解,发现参数avatar可以使用:
图10:遍历参数
经过测试,得到avatar=http://localhost/api/v1/secrets里面有Flag。
考察:测试不同的请求方式,参数字典遍历。
图11:获取private_key
Flag 3
提示:Sometimes developers hide extra features into a page… but how can you access it?
根据提示,以为在/user界面,对参数进行穷举,没有结果。
然后对所有界面进行参数穷举,在/status界面发现参数verbose=test。
考察:参数字典遍历
图12:遍历参数
Flag 4
提示:Have you read the new version of the API's documentations?
提示让看api文档,查询文档及测试半天无果,暴力穷举/api/v2发现了/api/v2/user和/api/v2/login,功能和/api/v1一致,只是把请求同X-Token换成了X-Session。
网上查询,请求swagger.json可以获取用户列表。
考察:测试不同版本api接口,官方文档检索。
图13:获取接口信息
Flag 5
提示:How can you use the same session across multiple different instances and versions?
在swagger.json中发现/api/v2/admin/user-list,带X-Session访问,提示不是admin用户。
图14:/admin/user-list
在/api/v1注册用户,登录后获取token。在/api/v2/admin/user-list中,将获取的token作为session头访问,获取Flag。
考察:越权,v1的token是v2的 admin凭证
图15:/admin/user-list越权访问
Flag 6
提示:Some features were never quite finished properly in some versions
在swagger.json文件中找到/api/v2/user/post/{id}。
图16:发现隐藏接口
在v2使用提示权限不够,在v1上使用。
带请求头X-Token访问/api/v2/user/post/1,成功获取Flag。
考察:不同版本api接口,有相同的api路径。
图17:/v1/user/posts/1
Flag 7
提示:Take a close look at the returned headers from all of your endpoints, is there anything different about one of them? Maybe theres a second server somewhere? Possibly we can get access to things higher up...
在图17中,analytics参数让访问:
/api/v1/post-analytics/3c8a6664b8203c2e0b2b24972ccf5ce3/
图18:访问analytics
经过测试,发现访问下面两个路径会获得相同结果,应该有目录遍历漏洞。
/api/v1/post-analytics/3c8a6664b8203c2e0b2b24972ccf5ce3/../
/api/v1/post-analytics/
图19:测试目录遍历
又经过多次测试,下面路径暴露了目录public:
/api/v1/post-analytics/3c8a6664b8203c2e0b2b24972ccf5ce3/../..
图20:发现隐藏目录
获取最后的Flag:
/api/v1/post-analytics/3c8a6664b8203c2e0b2b24972ccf5ce3/../..private
图20:目录遍历访问隐藏数据
原文始发于微信公众号(Rsec):[Hacker101靶场] RTFM [moderate]
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论