文章目录
SSRF
前言
关于内网和外网的区别:
https://zhuanlan.zhihu.com/p/147282153
对于php伪协议的详解
简介:
SSRF,Server-Side Request Forgery,服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制
https://ctf-wiki.org/web/ssrf/
工具
漏洞产生的相关函数
1.file_get_contents:按照文件路径输出文件内容
在伪协议中常用,php://input,data://
<?php
if (isset($_POST['url'])) {
$content = file_get_contents($_POST['url']);
$filename ='./images/'.rand().';img1.jpg';
file_put_contents($filename, $content);
echo $_POST['url'];
$img = "<img src=\"".$filename."\"/>";
}
echo $img;
?>
这段代码使用 file_get_contents 函数从用户指定的 URL 获取图片。然后把它用一个随机文件名保存在硬盘上,并展示给用户。
2.fsockopen()
fsockopen — 打开一个网络连接或者一个Unix套接字连接
说明
fsockopen(
string $hostname,
int $port = -1,
int &$errno = ?,
string &$errstr = ?,
float $timeout = ini_get("default_socket_timeout")
): resource
返回值:
fsockopen()将返回一个文件句柄,之后可以被其他文件类函数调用(例如:fgets(),fgetss(),fwrite(<