Home >Backend Development >PHP Tutorial >Alictf web 400 Recruitment[II] Write Up
记录一下这道比较有意思的题目
首先,首页是一个登陆页,其他地方没有看到明显的漏洞
头像上传点可以从网页直接获取,猜测是用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的知识