欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Alictf web 400 Recruitment[II] Write Up

程序员文章站 2022-06-02 20:30:37
...
记录一下这道比较有意思的题目

首先,首页是一个登陆页,其他地方没有看到明显的漏洞

头像上传点可以从网页直接获取,猜测是用curl或者file_get_contents完成的

那么这里就可能具有SSRF漏洞了。

对Url严格的限制了格式,只能是xx.jpg

但这难不倒我们,在nodeJS中使用路由xx.jpg

然后使用writeHead输出302重定向头。

response.writeHead(302, {  'Location': 'gopher://127.0.0.1:80/'});response.end();

这样就可以使用任意协议了

我首先尝试file:// php://等协议均无效

初步可以推测是用curl实现的

那么这里我使用gopher协议探测开启的端口

果不其然,11211的memcached对本地是开放的。

使用gopher://127.0.0.1:11211/ 访问到了memcached

gopher://127.0.0.1:11211/_stats%20items%0d%0a

并发送 stats item 指令 列出

然后使用

stats cachedump 5 100

来导出item中的键值,这里得到了session序列化后的数值。那么推测是,php中的处理器设置为了memcached

用set key flags exptime bytes

来增加一条新的cookies

然后成功伪造cookies后登陆到了管理员后台

看到了一个'秘密'文件

修改ip为127.0.0.1均无果

于是查看源码下载到了备份

虽然加载了全局防注入,但是没有考虑到$_SESSION

于是尝试构造注入,得到了flag

这道题比较有意思,总的来说考察了一下gopher和SSRF的知识