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)

相关推荐
千枫s20 小时前
电脑vm虚拟机kali linux安装shannon
学习·网络安全
数字供应链安全产品选型21 小时前
AI造“虾”易,治理难?悬镜多模态 SCA 技术破局 AI 数字供应链治理困局!
人工智能·安全·网络安全·ai-native
网络安全许木21 小时前
自学渗透测试第12天(渗透测试流程与DVWA部署)
web安全·网络安全·渗透测试
聊点儿技术21 小时前
IP风险评分80分是怎么算出来的?从权重分配到计算逻辑
网络安全·金融·ip·电商·ip风险评估·风控开发·评估ip风险
vortex51 天前
SOAP 协议中的 XML 外部实体注入(XXE)漏洞
xml·网络安全·渗透测试
买大橘子也用券1 天前
2026红明谷
python·web安全
航Hang*1 天前
网络安全技术基础——第3章:网络攻击技术
运维·网络·笔记·安全·web安全·php
一名优秀的码农1 天前
vulhub系列-64-Cereal: 1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
一名优秀的码农1 天前
vulhub系列-66-Hms?: 1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
OPHKVPS1 天前
React2Shell漏洞攻击中的新型恶意软件EtherRAT详解
网络·安全·web安全