Heim >Backend-Entwicklung >PHP-Tutorial >Alictf web 400 Recruitment[II] Write Up

Alictf web 400 Recruitment[II] Write Up

WBOY
WBOYOriginal
2016-06-20 12:26:011015Durchsuche

记录一下这道比较有意思的题目

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

头像上传点可以从网页直接获取,猜测是用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的知识

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 四种基本的排序的方法Nächster Artikel:PHP记录代码运行时间