Damn1t
for you I bleed myself dry
FRIENDS
baidu

ssrf

2019-04-15 ssrf

ssrf

什么是ssrf

​ SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种利用漏洞伪造服务器端发起请求。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

原理

通过控制功能中的发起请求的服务来当作跳板攻击内网中其他服务。比如,通过控制前台的请求远程地址加载的响应,来让请求数据由远程的URL域名修改为请求本地、或者内网的IP地址及服务,来造成对内网系统的攻击。

危害

  • 扫描内网开放服务

  • 向内部任意主机的任意端口发送payload来攻击内网服务

  • DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
  • 攻击内网的web应用,例如直接SQL注入、XSS攻击等
  • 利用file、gopher、dict协议读取本地文件、执行命令等

漏洞的典型场景

形如下面的url形式
http://www.xxx.com/image.php?image=http://www.xxc.com/a.jpg

服务器向远程请求加载图片

大体步骤:用户输入图片地址->请求发送到服务端解析->服务端请求链接地址的图片数据->获取请求的数据加载到前台显示

理想情况下,开发者没有限制任何协议访问,也没限制ip,那么攻击者可以直接请求内网地址:127.0.0.1等等,或者利用伪协议如dictfilegopher等等

1
2
3
4
http://www.xxx.com/image.php?image=file:///etc/passwd
http://www.xxx.com/image.php?image=dict://127.0.0.1:22/data:data2 (dict可以向服务端口请求data data2)
http://www.xxx.com/image.php?image=gopher://127.0.0.1:2233/_test (向2233端口发送数据test,同样可以发送POST请求)
......

对于不同语言实现的web系统可以使用的协议也存在不同的差异,其中:

1
2
3
4
php:
httphttpsfile、gopher、phar、dict、ftp、ssh、telnet...
java:
httphttpsfileftp、jar、netdoc、mailto...

很重要的是:
判断漏洞是否存在的重要前提是,请求的服务器发起的,以上链接即使存在并不一定代表这个请求是服务器发起的。因此前提不满足的情况下,SSRF是不必要考虑的。

链接获取后,是由js来获取对应参数交由window.location来处理相关的请求,或者加载到当前的iframe框架中,此时并不存在SSRF ,因为请求是本地发起,并不能产生攻击服务端内网的需求。

常见绕过方式

八进制、十进制、十六进制:
利用nip.io:
302跳转:
dns重绑定:
利用网站:https://qiita.com/shimoju/items/81ed5055d2fec5bb9c1e

其他绕过方式:https://www.secpulse.com/archives/65832.html
还有猪猪侠的分享

测试

编写如下php脚本

1
2
3
4
5
6
7
8
9
<?PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
#curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
#curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
curl_exec($ch);
curl_close($ch);
?>

reference:
https://xz.aliyun.com/t/6235#toc-10
https://xz.aliyun.com/t/6373#toc-0

Author: damn1t

Link: http://microvorld.com/2019/04/15/vulnerable/ssrf/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
acid server靶机渗透
NextPost >
分享一些国外著名的黑客技术学习网站
CATALOG
  1. 1. ssrf
    1. 1.1. 什么是ssrf
    2. 1.2. 原理
    3. 1.3. 危害
    4. 1.4. 漏洞的典型场景
    5. 1.5. 常见绕过方式
    6. 1.6. 测试