ssrf漏洞笔记

ssrf漏洞

漏洞原理

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

很多Web应用都提供了从其他服务器上获取数据的功能。使用用户指定的URL,Web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地服务器。

ssrf作用

端口扫描
内网web应用 指纹识别
攻击内网web应用
读文件
下载内网资源
绕过cdn
HTTP CRLF注入getshell
redis未授权getshell
mysql空口令

漏洞验证

1.排除法:浏览器f12查看源代码看是否是在本地进行了请求

比如:该资源地址类型为 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞

2.dnslog等工具进行测试,看是否被访问

​ --可以在盲打后台用例中将当前准备请求的uri 和参数编码成base64,这样盲打后台解码后就知道是哪台机器哪个cgi触发的请求。

3.抓包分析发送的请求是不是由服务器的发送的,如果不是客户端发出的请求,则有可能是,接着找存在HTTP服务的内网地址

​ --从漏洞平台中的历史漏洞寻找泄漏的存在web应用内网地址

​ --通过二级域名暴力猜解工具模糊猜测内网地址

4.直接返回的Banner、title、content等信息

5.留意bool型SSRF

漏洞利用

1.dict

?url=dict://127.0.0.1:3306

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vj1BsV3U-1618209540599)(C:\Users\lanla\AppData\Roaming\Typora\typora-user-images\image-20210126124219097.png)]

2.file

?url=file://d:\ssrf.txt
image-20210126124509711

3.http

?url=http://www.baidu.com/rebots.txt

4.gopher

​ gopher协议:通过GOPHER我们在一个URL参数中构造Post或者Get请求,从而达到攻击内网应用的目的。例如我们可以使用GOPHER协议对与内网的Redis服务进行攻。

基本协议格式:

URL:gopher://<host>:<port>/<gopher-path>_后接TCP数据流

​ 具体攻击在ssrf-gopher攻击

5.指纹识别

​ 识别内网应用,框架,平台,cms。可以读取一些特殊文件

​ 比如

?url=http://localhost/pypmyadmin/README

6.攻击web框架

通过get方式 比如stryts2命令执行。

绕过SSRF过滤的几种方法

1、更改IP地址写法

因为可能通过过滤掉内网IP的方式。
可以通过进制绕过:
192.168.0.1的各种进制

(1)、8进制格式:0300.0250.0.1

(2)、16进制格式:0xC0.0xA8.0.1

(3)、10进制整数格式:3232235521

(4)、16进制整数格式:0xC0A80001

2、利用解析URL所出现的问题

在某些情况下,后端程序可能会对访问的URL进行解析,对解析出来的host地址进行过滤。这时候可能会出现对URL参数解析不当,导致可以绕过过滤。

http://www.baidu.com@192.168.0.1/

当后端程序通过不正确的正则表达式(比如将http之后到com为止的字符内容,也就是www.baidu.com,认为是访问请求的host地址时)对上述URL的内容进行解析的时候,很有可能会认为访问URL的host为www.baidu.com,而实际上这个URL所请求的内容都是192.168.0.1上的内容。

3、短网址绕过

4、xip.io来绕过:

http://xxx.192.168.0.1.xip.io/ == 192.168.0.1 (xxx 任意)

指向任意ip的域名:xip.io(37signals开发实现的定制DNS服务)

5、限制了子网段,可以加 :80 端口绕过。

?url=http://1.1.1.1:80

6、探测内网域名,或者将自己的域名解析到内网ip

​ 在域名上设置A记录,指向127.0.1

7、利用[::]

利用[::]绕过localhost
http://[::]:80/  >>>  http://127.0.0.1
http://0000::1:80/

ssrf挖掘点

存在SSRF漏洞利用协议,分别是http、file、gopher、dict协议

file协议进行本地文件的读取
http协议进行内网的ip扫描、端口探测
探测到6379端口开放,可以利用http、gopher、dict这几个协议来打开放6379端口的redis服务。

通过URL地址分享网页内容

早期应用中,为了更好的用户体验,Web应用在分享功能中,通常会获取目标URL地址网页内容中标签或者<meta name=“description”content=“”/>标签中content的文本内容提供更好的用户体验。

转码服务

转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

在线翻译

在线翻译:通过 URL地址翻译对应文本的内容。提供此功能的百度、有道等。

百度翻译翻译ip138.com网页会直接查询出一个IP

图片加载与下载

通过 URL地址加载或下载图片

图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家图片服务器上的图片用于展示。(此处可能会有人有疑问,为什么加载图片服务器上的图片也会有问题,直接使用img标签不就好了,没错是这样,但是开发者为了有更好的用户体验通常对图片做些微小调整例如加水印、压缩等,所以就可能造成SSRF问题)。

远程加载头像

从url挖掘

Share、wap、url、link、src、source、target、u、3g、display、sourceURL、imageURL、domain

CMS挖掘

• Wordpress3.5.1以下版本 xmlrpc.php pingback的缺陷与ssrf

• Weblogic配置不当,天生ssrf漏洞

• Discuz x2.5/x3.0/x3.1/x3.2 ssrf漏洞

挖掘思路图

在这里插入图片描述

程声明:该课程是教学使用,视频内涉及漏洞利用方法,请勿在互联网环境中使用;维护互联网安全,人人有责。实验所需环境:vmware;kali虚拟机一台;windows server一台;有docker环境的Linux虚拟机环境下载地址在购买课程后单独发送 【课程配套资源】1、Python脚本(Margin老师自研,不光能学漏洞,还能学Python,实在是划算)2、与Margin老师实时互动3、免费的CISP-PTE考试技巧指导(Margin老师与CISP-PTE的负责人很熟的,非常多的一手消息^o^)4、Margin老师的内部直播可以优先参加5、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战   【课程主要解决问题】1、CSRF、SSRF搞不清楚?2、SSRF原理是什么?危害大小?如何利用SSRF获取主机权限?如果使用Python提高挖洞效率?3、Gopher协议、Dict协议?完全没听过啊,没关系,看完课程后你门清。4、SSRF渗透Redis数据库,Redis客户端服务器端怎么通信?通信报文是怎么样的?看这里就行。5、SSRF渗透Struts2总是失败?不知道如何编码?不知道如何使用Gopher协议?来这里。6、SSRF表面简单,实则有无数坑,通过视频提高学习效率吧。 【CISP-PTE介绍】1、CISP-PTE是进入网络安全行业的TOP1认证,能帮你梳理完整的网络安全知识体系2、有PTE证书在网络安全公司是免技术笔试的,怎么样?是不是很棒。3、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战本课程属于CISP-PTE渗透测试工程师认证体系的课程,但内容更加丰富。CISP-PTE是国内第一个以动手实操为主的网络安全认证,该注册考试是为了锻炼考生世界解决网络安全问题的能力,持续增强我国的网络安全水平和防御能力,促进国内网络防御能力的不断提高。考试内容从多个层面进行,考点和网络安全动态相结合,真实的反应出真实的网络环境中发现的各种问题。如果要考取CISP-PTE证书需要掌握以下内容:1、Web安全基础,注入漏洞、上传漏洞、跨站脚本漏洞、访问控制漏洞、会话管理漏洞哦等。2、中间件的安全知识,如:Apache,IIS,Tomcat,以及 JAVA 开发的中间件 Weblogic,Jboss, Websphere 等,且要了解中间件加固方法,在攻与防的能力上不断提升。3、操作系统安全,包含Windows和Linux操作系统,从账户管理、文件系统权限、日志审计等方面讲解,了解常见的漏洞方式和加固方法。4、数据库安全,包含MSSQL、MYSQL、ORACLE、REDIS数据,了解常用的数据库漏洞和题全方法,保证数据库的安全性。 【关于Margin老师】· Margin/教育系统网络安全保障人员认证首批讲师/高级讲师· 擅长CTF/Web安全/渗透测试 /系统安全· 3年研发/擅长Java/Python/某银行现金循环机业务系统开发者· 曾参与开发网络安全认证教材· 知乎专栏/CISP-PTE渗透测试工程师学习· 4年线下网络安全讲师/2000+线下学员/100000+线上学员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值