CTF自学-SSRF(3)

URL Bypass

看到网页提示url必须以特定网址开头,如果在index.php中除了检查url开头外不做任何检查,用curl直接访问这个url,那可以使用如下原理绕过:

html 复制代码
scheme://userInfo@host:port/path?query#fragment

这是一个完整的url格式,其中@前面为可选项,填写用户信息(用户名,密码等),@后面填写的才是通常url中用到的文件路径,通常访问一个url都是用不到用户信息的,所以不用填写@以及前面的部分,这里为了做绕过,可以在http://notfound.ctfhub.com后面直接加@真正要访问的文件路径,这样服务器会忽略@前面的部分,直接访问后面的文件。

数字IP Bypass

利用进制转换绕过,这里选用16进制绕过

127.0.0.1 -> 0x7f.0x0.0x0.0x1 或者 0x7f000001

302跳转 Bypass

由前面的题目对index.php源码的分析可知curl中开启了跟踪跳转,所以让其访问一个具有跳转效果的网页即可,这里我再利用本地的服务器完成跳转。

通过如下页面实现跳转

顺带一提这题用IP Bypass依然有效

附上本题index.php源码

复制代码
<?php

error_reporting(0);

if (!isset($_REQUEST['url'])) {
    header("Location: /?url=_");
    exit;
}

$url = $_REQUEST['url'];

if (preg_match("/127|172|10|192/", $url)) {
    exit("hacker! Ban Intranet IP");
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);

DNS重绑定 Bypass

Domain Name System即域名系统,提供域名到IP地址的转换的服务器即DNS服务器。如果一台服务器信任一台DNS服务器,只在第一次查询一个新域名时检查DNS返回的ip是否合法,我们就可以利用DNS重绑定攻击,第一次查询域名时返回合法IP,此后再次查询时返回非法IP(如127.0.0.1)。

访问该网页可以直接实现DNS重绑定(这里)。如图所示,在下面分别输入我们需要访问的IP和一个合法IP,该然后当我们查询下面的域名时,该DNS服务器就会在两个IP之间来回横跳。

将两个IP设置好后,把下面的域名拷贝到题目中跳转的URL后面,并记得补全路径

这样就成功实现了DNS重绑定

另外,本题依然可以用16进制(0x7f000001)绕过,不过不支持点分16进制(0x7f.0x0.0x0.0x1)

相关推荐
小小邵同学7 小时前
jsp payload解析
网络安全
兄弟加油,别颓废了。7 小时前
BUUCTF——Basic——BUU LFI COURSE 11
安全·web安全
土豆.exe9 小时前
OpenClaw 安全保险箱怎么做?从 ClawVault 看 AI Agent 的原子化控制、检测与限额
人工智能·网络安全·ai安全·openclaw
cramer_50h10 小时前
我的 网络安全资产暴露/攻击面管理系统
安全·web安全
Chengbei1111 小时前
Chrome浏览器渗透利器支持原生扫描!JS 端点 + 敏感目录 + 原型污染自动化检测|VulnRadar
javascript·chrome·安全·web安全·网络安全·自动化·系统安全
尤山海13 小时前
深度防御:内容类网站如何有效抵御 SQL 注入与脚本攻击(XSS)
前端·sql·安全·web安全·性能优化·状态模式·xss
ShoreKiten15 小时前
DC-3靶机渗透--CTFer从0到1的进阶之路
安全·网络安全·渗透测试
一只鹿鹿鹿16 小时前
网络安全风险评估报告如何写?(Word文件)
java·大数据·spring boot·安全·web安全·小程序
网安情报局16 小时前
2026网络安全六大确定性趋势
大数据·人工智能·网络安全
大方子16 小时前
【PolarCTF】session文件包含
网络安全·polarctf