一、题目链接
二、前置知识
这两道CTF题涉及到SSRF漏洞,所谓SSRF(Server-Side Request Forgery),服务器端请求伪造,是一种由攻击者通过构造payload使得服务端发起请求的一个安全漏洞,
一般情况下SSRF攻击的目标是外网无法访问的内部系统。也正是因为它是由服务端发起的,所以它能够请求到与它相连但与外网隔离的内部系统。
SSRF形成的原因大都是由于服务器提供了从其他服务器应用获取数据的功能且没有对目标地址进行过滤与限制。
可产生SSRF漏洞的功能点有:
1.社交分享功能:获取超链接的标题等内容进行显示
2.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
3.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
····
在获取判断出可以利用ssrf漏洞后,可以尝试使用伪协议进行读取:
http:// web常见访问:http://127.0.0.1
file:// 从文件系统中获取文件内容:file:///etc/passwd
dict:// 字典服务器协议,访问字典资源:dict:///ip:6739/info:
sftp:// SSH文件传输协议或安全文件传输协议
gopher:// 分布式文档传递服务,可使用gopherus生成payload
三、解法步骤
本题提示flag在flag.txt中,打开网页,发现一排英文:
上面的控制面板是用来监控公司公寓的一些情况的,然后点开overview
选项卡可以发现数据显示,同时使用BP抓包:
发现名为service
的参数请求了外部网址,然后获取了公寓的信息,因此这里可能发生SSRF漏洞,于是尝试利用file协议读取本地的flag.txt,看看能不能成功:payload:service=file://127.0.0.1/flag.txt
下一题也是利用SSRF漏洞,但是多加了过滤。我们可以通过编码127地址进行绕过:127在八进制下是177,于是构造payload:
service=file://0177.0.0.1/flag.txt,同样可以获得flag。
当然也可以通过缺省本地地址:127.0.1,127.1
三、总结
本题考了SSRF漏洞,主要是知道SSRF漏洞形成原因以及可能产生漏洞的地方,最后通过伪协议进行利用,总的来说比较简单。
- THE END -
最后修改:2023年11月18日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:http://47.98.239.98/2023/11/18/ctf-webnextgen-1%e3%80%812/