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

SSRF漏洞学习

目录

一.漏洞原理

二.SSRF的利用

三.靶场练习

1.内网访问

2.伪协议读取文件

3.端口扫描

4.POST请求


一.漏洞原理

SSRF 服务端请求伪造 原理:在某些网站中提供了从其他服务器获取数据的功能,攻击者能通过构造恶意的URL参数,恶意利用后可作为代理攻击远程或本地的服务器。

二.SSRF的利用

1.对目标外网、内网进行端口扫描。
2.攻击内网或本地的程序或应用
3.利用file协议读取本地文件
4.利用get攻击外网或内网的web应用

三.靶场练习

1.内网访问

根据提示在url后的参数读取flag.php

2.伪协议读取文件

根据提示,采用file协议即可拿到flag

ssrf漏洞中常使用的伪协议:
1.file:主要用于读取服务器本地文件,访问本地的静态资源
2.dict:一般用来探测内网主机以及端口开放情况,也可以用来执行一些服务的命令
3.gopher:分布式文档传递服务,使用gopher可发送各种格式的请求包,利用此协议可以攻击内网的FTP、Telnet、Redis等,也可进行GET,POST请求

3.端口扫描

根据提示爆破8000-9000的端口

发现8603端口的长度和别的端口有较大差别

4.POST请求

使用file协议查看flag.php

根据其中的php源码可得知,该源码检查客户端请求是否通过post传递了一个有效key值,传递了的话则输出flag

这里使用gopher协议向服务器发送post包,首先构造gopher协议需要的post请求

先访问flag.php获得key

即可构造gopher所需的post请求

POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Length: 36
Content-Type: application/x-www-form-urlencoded
key=6d6f1d103699402e50beaa8d49f32823

在向服务器发送请求时,浏览器会进行第一次URL解码,服务器收到请求执行curl后进行第二次URL解码。所以需要对构造的请求包也进行两次URL编码,这里借助在线工具即可,注意:第一次编码后,需要将%0A全部替换为%0D%0A

将编码后的数据放入参数中提交即可获得flag
 

gopher协议
?url=gopher://127.0.0.1:80/_


http://www.mrgr.cn/news/8060.html

相关文章:

  • MySQL主从复制之GTID模式
  • 未来已来:探索机器学习如何重塑人工智能的未来方向
  • 如何从电脑/外部硬盘驱动器/USB 驱动器/内存卡恢复数据?
  • 数学建模学习(117):四阶龙格-库塔方法从理论到Python/matlab实践
  • 安科瑞电气防火在线保护器 ASCP210系列适用于汽车充电桩
  • MATLAB 计算两点沿某个方向的间距(81)
  • java进阶学习路线
  • spark重试次数讲解
  • F - Dist Max 2
  • css高级
  • WIFI 模组8286驱动
  • Ubuntu24.04安装MYSQL8.0
  • 一、插件开发入门【Qt环境-mingw6.5.3-qmake版】-封装dll调用
  • 老师怎样分班更便捷?
  • 排查Maven问题的步骤
  • 致远OA OCR票据识别组件
  • Vue路由—进阶篇
  • [数据集][目标检测]夜间老鼠检测数据集VOC+YOLO格式316张1类别+视频文件1个
  • 牛客,笔试小题
  • 17 深入理解 C 语言 main 函数:返回值意义、命令行参数接收、跨环境差异及CMD乱码解决