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

NSS [SWPUCTF 2021 新生赛]PseudoProtocols

NSS [SWPUCTF 2021 新生赛]PseudoProtocols

先看题目,题目要求我们先找到hint.php。

image-20230620124205310

看这个get请求头,我们先用php://filter协议读一波

image-20230620124447132

得到提示,让我们前往/test2222222222222.php

image-20230620124531653

源码如下

image-20230620124614718

<?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){echo "success\n";echo $flag;
}
?>

代码分析:
ini_set("max_execution_time", "180");

将PHP脚本的最大执行时间设置为180秒。

if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag')

如果“a”变量被设置,并且读取“a”变量的【文件】内容等于“I want flag”,则输出“success”和flag的值。

接下来有两种解法

1、php://input

此方法需要条件,即开启allow_url_include=On。

实际上这相当于一个远程包含的利用。

php://打开文件流后,我们直接在流里面写入我们的恶意代码,此时包含既可执行代码。

?a=php://input// 然后在POST里传入I want flag,则成功读取Flag

2、data://

data://本身是数据流封装器,其原理和用法跟php://input类似,但是是发送GET请求参数。

?a=data://text/plain,I want flag

data协议:data协议是一种特殊的URL协议,可以将数据直接嵌入到URL中,而无需使用外部文件或数据源。data协议的语法如下:

data:[<media type>][;base64],<data>;前两个变量可以不要HASKELL

具体用法就如下payload

payload=?a=data://text/666,I want flag
//正确用法text/后面跟的是plain我这里用的666,但flag也出来了。

image-20230620134710367

http://www.lryc.cn/news/204028.html

相关文章:

  • 字节码进阶之JVM Attach API详解
  • Kubernetes 部署 kubeflow1.6.1
  • 设计模式:建造者模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
  • Maxon Cinema 4D 2024:打造独一无二的视觉效果 模拟模块大更新
  • 16.2 ARP 主机探测技术
  • 三级等保-linux服务器三权分立设置
  • 抓取网页的含义和URL基本构成
  • 计算机毕业设计 机器学习深度学习人工智能
  • 施密特正交化
  • 低代码开发:加速应用开发的利器
  • 数据安全发展趋势与密码保护技术研究
  • 368周赛leetcode
  • Vue 的 nextTick:深入理解异步更新机制
  • SQL关于日期的计算合集
  • shell_44.Linux使用 getopt 命令
  • Linux备份Docker的mysql数据并传输到其他服务器保证数据级容灾
  • 【vue+nestjs】qq第三方授权登录【超详细】
  • 经典卷积神经网络 - VGG
  • 系统集成测试(SIT)/系统测试(ST)/用户验收测试(UAT)
  • Android Gradle8.0以上多渠道写法以及针对不同渠道导入包的方式,填坑!
  • hdlbits系列verilog解答(向量门操作)-14
  • 工厂模式(初学)
  • python试题实例
  • Java Heap Space问题解析与解决方案(InsCode AI 创作助手)
  • 基于遥感影像的分类技术(监督/非监督和面向对象的分类技术)
  • 插入兄弟元素 insertAfter() 方法
  • 【C++项目】高并发内存池第二讲中心缓存CentralCache框架+核心实现
  • Git基础教程
  • stm32外部时钟为12MHZ,修改代码适配
  • 【数据结构】八大排序