网络安全-SSRF漏洞原理、攻击与防御

目录

概述

原理

挖掘SSRF漏洞

利用技巧

攻击举例

绕过

防御

工具

参考


概述

SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造请求,由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统,因为服务器请求天然的可以穿越防火墙。漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作正确的过滤和限制

原理

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档等等。SSRF漏洞通过篡改获取资源的请求发送给服务器(服务器并没有检测这个请求是否合法的),然后服务器以他的身份来访问服务器的其他资源。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

PHP中下面函数的使用不当会导致SSRF:

  • file_get_contents()
  • fsockopen()
  • curl_exec()

伪协议

  • file://:从文件系统中获取文件内容,如,file:///etc/passwd
  • dict://:字典服务器协议,访问字典资源,如,dict:///ip:6739/info
  • gopher://:分布式文档传递服务,可使用gopherus生成payload。

挖掘SSRF漏洞

能够对外发起网络请求的地方,就可能存在SSRF漏洞。

  • 从远程服务器请求资源(Upload from URL,Import &Export RSS feed)
  • 数据库内置功能(Oracle[UTL_HTTP]、MongoDB、MSSQL、Postgres、CouchDB)
  • Webmail 收取其它邮箱邮件(POP3/IMAP/SMTP)
  • 文件处理,编码处理,属性信息处理(ffpmg,ImageMaic,DOCX,PDF,XML处理器)

利用技巧

利用条件:被攻击的服务等没有开启加密传输与鉴权。

  • 端口扫描(扫描内网)
  • 攻击内网存在漏洞的服务
  • 攻击Web应用进行指纹识别及其中的漏洞
  • 如果PHP安装了expect扩展,可以通过expect协议执行系统命令
  • dos攻击
  • file 协议暴力枚举敏感文件

Redis未授权漏洞的6种利用方法

  1. 保存文件到www目录,形成webshell
  2. 创建authorized_keys文件,利用ssh 私钥登录服务器
  3. 写计划任务(/var/spool/cron/ & /etc/cron.d/)
  4. slave of 8.8.8.8 主从模式利用
  5. 写入到/etc/profile.d/ 用户环境变量修改
  6. 开启AOF持久化纯文本记录 appendfilename

攻击举例

使用靶机:pikachu

curl

我们可以看到一个url参数。

我们修改一下

url=file:///C:/Windows/win.ini

查看到win.ini文件

我们进行了SSRF攻击,成功查看到服务器的敏感文件内容。关于Windows和Linux的敏感文件路径,可以百度一下。

同样

绕过

正则绕过

http://xample.com@evil.com

配置域名

手上有可控域名,可将域名指向想要请求的IP

进制、特殊ip绕过

IP地址转为八、十、十六进制及IP地址省略写法(以下均代表127.0.0.1)

  •        0177.00.00.01
    
  •        2130706433
    
  •        0x7f.0x0.0x0.0x1
    
  •        127.1
    

库绕过

利用检测时使用的URL parse库与请求时使用的parse库的差异绕过,如 http://1.1.1.1 &@2.2.2.2# @3.3.3.3/ 不同的parse库的解析结果不一样

urllib2 : 1.1.1.1

requests + browsers : 2.2.2.2

urllib : 3.3.3.3

dns重定向绕过

设置两条A记录,利用dns重绑定绕过检测,第一次解析返回正常ip,第二次返回内网地址(dns解析记录缓存存活的时间为0,相当于每次解析都要去重新请求dns服务器,无法在本地缓存)

xip.io

一个很有趣的网站,域名解析为ip,例子如下:

      **10.0.0.1.xip.io        resolves to   10.0.0.1  
  www.10.0.0.1.xip.io   resolves to   10.0.0.1  

mysite.10.0.0.1.xip.io resolves to 10.0.0.1
foo.bar.10.0.0.1.xip.io resolves to 10.0.0.1
192.168.20.46.xip.io resolves to 192.168.20.4**

30x重定向

利用30x重定向去访问内网

使用 xray 反连平台挖掘和验证 SSRF

CRLF 编码绕过

%0d->0x0d->\r回车

%0a->0x0a->\n换行

进行HTTP头部注入

example.com/?url=http://eval.com%0d%0aHOST:fuzz.com%0d%0a 

防御

限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。

限制不能访问内网的IP,以防止对内网进行攻击

屏蔽返回的详细信息

工具

gopherus

利用gopher协议,可以攻击

  • MySQL (Port-3306)
  • FastCGI (Port-9000)
  • Memcached (Port-11211)
  • Redis (Port-6379)
  • Zabbix (Port-10050)
  • SMTP (Port-25)

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值