NSS [SWPUCTF 2021 新生赛]PseudoProtocols

编程入门 行业动态 更新时间:2024-10-07 06:44:04

NSS [SWPUCTF 2021 <a href=https://www.elefans.com/category/jswz/34/1766601.html style=新生赛]PseudoProtocols"/>

NSS [SWPUCTF 2021 新生赛]PseudoProtocols

NSS [SWPUCTF 2021 新生赛]PseudoProtocols

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

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

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

源码如下

<?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也出来了。

更多推荐

NSS [SWPUCTF 2021 新生赛]PseudoProtocols

本文发布于:2023-12-03 23:29:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1658945.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:新生   SWPUCTF   NSS   PseudoProtocols

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!