本系列题目来源:CTFSHOW: https://ctf.show/challenges
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
https://ctf-wiki.org/web/ssrf/
curl_init — 初始化 cURL 会话
curl_setopt — 设置一个cURL传输选项。
CURLOPT_HEADER启用时会将头文件的信息作为数据流输出。URLOPT_RETURNTRANSFER将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_exec — 执行 cURL 会话
curl_close — 关闭 cURL 会话
如果我们直接访问,会输出
所以需ssrf读取flag, payload:
parse_url — 解析 URL,返回其组成部分
这里过滤了,
假的吧,都可以出来,
在本地尝试尝试绕过:
题目尝试也可绕过。
直接绕过:
直接把和·也给过滤了。
可以
将自己域名A记录指向
正好指向127.0.0.1
302跳转
这里要求长度不大于5.
直接,正好是5
还可找一个域名长度不大于5的域名 A 记录解析到.
这回更绝,长度不大于 3 .
0在linux系统中会解析成127.0.0.1在windows中解析成0.0.0.0
payload:
域名解析到vps,
ssrf.php
正则表达式的意思是以http://ctf.开头,以show结尾。
payload:
https://www.freebuf.com/articles/web/260806.html
然后传到check.php中post: returl=xxxxx,但是不要忘了把下划线后面的内容url编码一次.
浏览器会对此url进行一次解码,解码后的url可能会含特殊字符,curl提交时需再次编码.
之后就会生成.
和上题差不多