当前位置: 首页 > news >正文

【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请求,可进行复杂漏洞利用。

但是支持的范围比较小

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

ssrf常用的绕过方法

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

绕过方法

@字符:xxx.com@10.10.10.10访问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<script>alert(1)</script>

案例三

查看文件

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

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

http://www.lryc.cn/news/253221.html

相关文章:

  • 佳易王会员管理软件店铺积分以及积分兑换系统
  • Django回顾【二】
  • [Ubuntu 18.04] RK3399搭建SSH服务实现远程访问
  • Linux进程间通信之共享内存
  • lv11 嵌入式开发 RTC 17
  • c语言指针详解(上)
  • 如何删除mac苹果电脑上面的流氓软件?
  • WordPress(11)给文章添加预计阅读时长
  • 周周爱学习之快速排序
  • 国产接口测试工具APIpost
  • MySQL电商管理系统练习题及答案
  • 每日3道PWN(第二天)
  • SAP STMS传输请求
  • L1-009:N个数求和
  • 当发送“Hello,World”时,channel发生了什么?
  • 服务器运行情况及线上排查问题常用命令
  • Hadoop学习笔记(HDP)-Part.18 安装Flink
  • LeetCode56. 合并区间
  • 解决typescript报错:找不到名称xxx
  • UVM中封装成agent
  • OSI七层模型与TCP/IP四层模型
  • QT 中 QProgressDialog 进度条窗口 备查
  • 学习ShardingSphere前置知识
  • 读书笔记-《数据结构与算法》-摘要3[选择排序]
  • Arduino驱动MLX90614红外测温传感器(温湿度传感器)
  • Ubuntu上传文件到SMB共享文件夹
  • 【Linux】基础IO--重定向理解Linux下一切皆文件缓冲区
  • RINEX介绍
  • ROS-ROS通信机制-服务通信
  • chown和chmod