【web安全】ssrf漏洞的原理与使用

前言

菜某对ssrf漏洞的总结。

ssrf的作用

主要作用:访问外界无法访问的内网进行信息收集。

1.进行端口扫描,资源访问

2.指纹信息识别,访问相应的默认文件

3.利用漏洞或者和payload进一步运行其他程序

4.get类型漏洞利用,传参数实现攻击

5.post型漏洞利用,用gopher协议进行参数构造

6.拒绝服务攻击(访问大文件占用资源)

ssrf的原理

当网站有一个功能,能去访问网络上的其他资源时,我们可以更改他要访问的url地址,使其指向我们想让他访问的位置。

服务器处于一个内外网交界的位置,我们无法访问他们的内网,所以我们就可以利用ssrf漏洞,以他作为跳板去访问正常访问不到的内网的内容。

ssrf常出现的场景

任何服务器访问其他资源的地方,都可能有。

常常出现在:

1.通过URL地址进行页面分享

2.转码服务,通过URL把原文件地址的页面进行页面转换格式

3.在线翻译,一键翻译相应URL地址中的英文

4.图片加载与下载,通过URL进行图片获取的。

5.未公开的api实现以及其他调用URL的功能

6.设备后台管理进行存活测试,(测试开启状态时会访问)

7.远程图片访问或者加载

8.远程头像加载

10.打包附件或者内容编辑导出

ssrf漏洞的判定

1.回显变化,根据页面的回显情况进行判断

2.让他访问自己的服务器,然后看日志他是否访问过

3.从时间判断,有些外国网站明显访问速度应该比国内网站慢,有过有这种情况则存在

4.    DNS 请求检测:自己搭建 DNS 服务器,或者利用网上的 DNSLog

服务(比如http://www.dnslog.cn/),生成一个域名(l08bgh.dnslog.cn)用于伪造请求,看漏洞服务器是否发起DNS 解析请求,若成功访问在 DNSLog.cn 上就会有解析日志。

ssrf常用的攻击协议

http(s),file,dict,gopher

--http协议:最常用的ssrf漏洞利用协议

  例:http://xxx.com?url=http://1.1.1.1/xxx

--file协议:可以读取服务器文件

  例:http://xxx.com?url=file://1.1.1.1/xxx

--dict协议:可以利用此协议进行端口开放测试

  例:http://xxx.com?url=dict://1.1.1.1/xxx

--gopher协议:支持发送get,post请求,可进行复杂漏洞利用。

但是支持的范围比较小

不同语言对于协议的支持情况

【web安全】ssrf漏洞的原理与使用_第1张图片

ssrf常用的绕过方法

开发人员常见的过滤手法:对域名和IP进行白名单或者黑名单的限制。

绕过方法

@字符:[email protected]访问10.10.10.10(对抗白名单)

后加xip.io:10.10.10.10.xip.io被解析成10.10.10.10

数字IP地址:127.0.0.1的十进制:2130706433

进制转换:127.0.0.1的八进制:0177.0.0.1。十六进制:0x7f.0.0.1

封闭式的字母数字:有些手机上打出来开的数字外面套着圈的也能被识别

DNS重绑定:使用此方法可以实现域名解析为内网IP

协议限制绕过:禁用了部分协议之后可以换用其他协议。

[::]绕过localhost:http://[::]:80/

ssrf案例

均在本地搭建简易漏洞

案例一

端口扫描敏感信息

因为mysql的端口在3306,当我们访问3306时得到了mysql的版本

案例2

利用get形式的其他漏洞

我同时装了xss-labs靶场,用这个端口可以去请求xss的第一关实现xss利用。

当然这个是对本机进行的,也可以对内网的其他机器进行。

(实战中通常是用内网中一些get型的软件漏洞进行攻击)

输入的内容

http://127.0.0.1/xss/level1.php?name=test

【web安全】ssrf漏洞的原理与使用_第2张图片

案例三

查看文件

在对应的目录下,还有一个lookme的文件,可以用这个读取。

【web安全】ssrf漏洞的原理与使用_第3张图片

这里是看的本机的,如果把IP换成内网的就可以访问内网的了。

你可能感兴趣的:(网络安全总结,web安全,安全)