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

复现ssrf漏洞

目录

一、pikachu靶场

1、靶场环境:

使用docker拉取:

docker run -d -p 8765:80 8023/pikachu-expect:latest

2、使用dict

3、使用file读取文件

二、redis未授权访问

1、源码

2、使用bp探测端口

3、继续使用bp探测172.18.0.2的端口

4、使用gopherus写入

一、pikachu靶场

1、靶场环境:

使用docker拉取:

docker run -d -p 8765:80 8023/pikachu-expect:latest

如图所示:

2、使用dict

用 dict 协议的方式可以打开强行读取一些 mysql 服务的返回内容

但是当我们将端口号改变时发现没有返回内容

所以我们也可以用dict来探测内网端口,主要用来探测这几大服务

1、fistcgi   --发现后可以是用RCE

2、Redis  --未授权访问

如果你的Redis没有设置访问密码,以及安全模式关闭的情况下

1、用来写入webshell  --前提是知道物理路径

2、写入任务计划   --反弹shell可以将服务器权限反弹给攻击者

3、写入公钥   --意味着不需要账号密码直接登录服务器

3、使用file读取文件

二、redis未授权访问

1、源码

<?php
highlight_file(__file__);
function curl($url){  
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   echo curl_exec($ch);
   curl_close($ch);
}

if(isset($_GET['url'])){
   $url = $_GET['url'];

   if(preg_match('/file\:\/\/|dict\:\/\/|\.\.\/|127.0.0.1|localhost/is', $url,$match))
  {
       die('No, No, No!');
  }
   curl($url);
}
if(isset($_GET['info'])){
   phpinfo();
}
?>

相较于上面的靶场这个限制了file和dict,127.0.0.1和localhost同样限制

尝试使用dict探测端口显示No, No, No!

但是代码最后面写了一段,如果是info时就把这个打印出来

可以看到Hostname是172.18.0.3,可以得到现在docker下的ip为172.18.0.3

2、使用bp探测端口

发现只开放了80端口

因为Hostname是172.21.0.3,所以内网中不可能只有一台服务器,通过尝试发现172.18.0.2可能有web服务

3、继续使用bp探测172.18.0.2的端口

发现6379端口打开着

运行6379发现报错,说明这台内网主机上还运行着redis服务

通过bp扫描目录,发现有个upload目录,访问upload

4、使用gopherus写入

如下图:

gopherus --exploit redis

PHPShell

<?php system('cat /flag'); ?>

将生成的payload再次用url进行编码,然后发送过去,然后使用ssrf访问这个内网的upload/shell.php文件得到flag


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

相关文章:

  • rabbitmq发送的消息接收不到
  • 【论文阅读】YOLOv10: Real-Time End-to-End Object Detection
  • Windows Edge 兼容性问题修复
  • Spring Security与Apache Shiro:Java安全框架的比较
  • 如何为孤独症儿童选择最合适的康复机构?
  • SDI与CVBS信号处理:从编码到解码的深入探讨
  • 如何在知行之桥上通过业务单号查找原始报文?
  • 如何评估云服务器提供商可靠性与信誉度
  • 【Python 千题 —— 基础篇】身份证隐藏的信息
  • Spring Boot 八股文
  • Linux 系统通过 FTP 上传文件到云服务器
  • 【数学分析笔记】第2章第4节收敛准则(6)
  • 喜羊羊做Python二级(模拟考试--易错点)
  • 排序算法之插入排序详细解读(附带Java代码解读)
  • WHAT - 通过 react-use 源码学习 React(Animations 篇)
  • 小白指南:Linux怎么创建压缩包?又怎么解压缩?
  • Android设备如何异地访问本地部署的code-server随时随地远程开发
  • Spring Boot DevTools:简化开发,实现热部署
  • FPGA开发——IIC实现简单的串口回环
  • HTML5有格调的个人介绍网站源码