前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[NISACTF 2022]easyssrf解题思路

[NISACTF 2022]easyssrf解题思路

原创
作者头像
Anime_Bucket
发布2023-01-11 01:48:37
9020
发布2023-01-11 01:48:37
举报

我们首先看到这道题目的考点:

发现考的是ssrf漏洞。

看到ssrf漏洞我们可以想到是这几个函数

file_get_contents() curl() fsocksopen() fopen()这几个函数,就,如果说我们的题目是一个代码,或者你已经获得了代码的话,我们看到这几个函数,就可以往ssrf上想一想。还有就是,如果说我们看到在url中我们可以传入一些数据的话,我们可以尝试使用http://,file://等协议去读取一下看看。然后就是ssrf也可以与php伪协议结合在一起使用的,我们可以结合file://协议读取一些文件,我们这道题就是ssrf结合了file://协议和filter://协议做出来的。

ok,我们看到题目页面。

这里说是输入要CURL的网站,我尝试了一下使用www.baidu.com,然后查看了一下回显

然后想到,我们最终要找的是flag,那我能不能输入一个flag.com或者flag.php

然后发现了新的回显,提示我们可以查看一下/fl4g这个文件,然后我又尝试了一下flag.php和flag发现都是可以的,都得到了这个回显。

既然提示了我们查看/fl4g这个文件,而且我们又知道ssrf可以结合伪协议,那么,我们这里便可以使用file://协议读取一下/fl4g这个文件。

得到了一个新的回显,这里我们需要注意一下啊,我们需要查看的文件时/fl4g,不是fl4g,不要傻乎乎的写一个file://fl4g,这样是得不到提示的。然后我们更具提示的意思,因该是需要访问一下新的这个php网页。

确实,我们也得到了一个新的页面。然后我们也发现了file_get_contents()这个函数,ssrf需要注意的一个函数。

我们分析一下这个代码,也就是我们要在url里面传入一个file的值,判断文件中是否包含"file"字符串 ,如果包含的话,输出 "你败了.",最后,通过 file_get_contents($file) 函数来读取文件内容并输出。这里我能想到的是ssrf结合一下php://filter,来拿到这个文件,不确定,试试。

发现

发现确实可以,我们将这段base64拿去解码就可以得到flag了。

第二种得到flag的方法:

这个方法是这样的,因为是读取到一个文件对吧,我们是不是可以想到文件包含,想到文件包含,而且它也没有对../进行过滤,我们可以直接通过文件包含漏洞得到flag,十分的简单。

以上第二种方法参考了一下这道题的wp,我可能在ssrf那里写的比较水,请大佬勿喷。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档