[第五空间 2021]WebFTP、[HCTF 2018]Warmup

目录

[第五空间 2021]WebFTP

​[SWPUCTF 2021 新生赛]Do_you_know_http

[NCTF 2018]签到题

[HNCTF 2022 Week1]What is Web

[HNCTF 2022 Week1]Interesting_http

[HCTF 2018]Warmup


[第五空间 2021]WebFTP

使用dirsearch扫描,发现有git泄露

使用GitHack克隆目录,但提示为空仓库

python2 GitHack.py http://node4.anna.nssctf.cn:28914/?m=login&a=in/.git

还有其他目录,在phpinfo.php中发现flag

[SWPUCTF 2021 新生赛]Do_you_know_http

打开环境提示说,请使用“WLLM”浏览器!

bp抓包修改UA头为WLLM,发包后提示只能本地访问 id为183.224.81.105

添加X-Forwarded-For:127.0.0.1,回显可看到地址已经变为本地

发包得flag

[NCTF 2018]签到题

抓包发到重发器,回显后发现flag。

[HNCTF 2022 Week1]What is Web

跟上题一样,bp抓包发到重发器,回显后发现flag(base64解码)。

[HNCTF 2022 Week1]Interesting_http

打开环境 提示 POST 发包,参数名为 want

使用HackBar  POST传参want,提示有flag

令want=flag,提示不是 admin 用户

bp抓包将cookie中的user改为admin

改了之后又提示 不是本地,添加xff(X-Forwarded-For:127.0.0.1)回显得到flag。

[HCTF 2018]Warmup

[HCTF 2018]WarmUp(代码审不好,看大佬wp)

打开环境只有一个表情包,查看源代码发现source.php

访问source.php,得到代码

代码审计:

<?phphighlight_file(__FILE__);        // 引入当前文件class emmm
{public static function checkFile(&$page){// 定义一个白名单,包含允许访问的文件名"source.php"和"hint.php"$whitelist = ["source"=>"source.php","hint"=>"hint.php"];

//定义了一个名为emmm的类,在该类中有一个静态方法checkFile用于检查要包含的文件是否在白名单中,白名单是一个关联数组$whitelist,其中包含了允许包含的文件的键值对。

        // 如果没有设置$page变量或者$page不是字符串,则返回错误信息if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}// 如果$page在白名单中,则返回trueif (in_array($page, $whitelist)) {return true;}// 截取$page字符串,直到第一个问号的位置$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));// 如果截取后的$_page在白名单中,则返回trueif (in_array($_page, $whitelist)) {return true;}// 对$page进行URL解码$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));// 如果截取后的$_page在白名单中,则返回trueif (in_array($_page, $whitelist)) {return true;}// 如果都不满足条件,则返回错误信息echo "you can't see it";return false;}
}

符号点 '.' 是 PHP 中的字符串连接运算符,它用于将两个字符串连接在一起,形成一个更长的字符串。

它将 $page 变量的值和一个问号字符 '?' 连接在一起,形成一个新的字符串,在这个新的字符串中查找问号是否存在,那么很明显肯定能找到。

 $_page = mb_substr($page,0,mb_strpos($page . '?', '?'));

//先使用mb_strpos函数找到$page中第一个问号的位置,然后使用mb_substr函数将问号之前的部分作为$_page进行处理。

 if (! empty($_REQUEST['file'])                                                                                         && is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;}else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  

//检查$_REQUEST['file']是否存在且为字符串类型,并调用emmm::checkFile方法进行检查。如果返回值为true,则通过include语句包含$_REQUEST['file']指定的文件并终止程序执行,否则输出一个图片标签。

始终在source.php页面下进行的传参操作,目的是利用include函数将flag文件包含出来

尝试访问hint.php,提示flag在ffffllllaaaagggg中。

source.php?file=hint.php//php代码的判断过程:传入file=hint.php,首先检查'hint.php'是否是一个字符串,它是字符串,条件通过;检查'hint.php'是否在白名单中(白名单包括hint.php和source.php),在,继续执行后面的代码;对'hint.php'执行mb_substr函数,但是函数内一个参数是来自另一个函数mb_strpos的返回值,因此我们先看mb_strpos函数,使用.进行字符连接,即连接了一个问号字符 '?',得到hint.php?然后查找'?'在字符串'hint.php?'中第一次出现的位置,从0开始算,返回8,即length=8接下来执行mb_substr函数,即 mb_substr('hint.php',0,8)从字符串中的第一个字符处开始,返回8个字符,还是返回hint.php;然后对返回的内容进行url解码,重复执行上面的检查和截取操作。

构造payload,得到flag。

source.php?file=hint.php?/../../../../ffffllllaaaagggg 
或
source.php?file=source.php?/../../../../ffffllllaaaagggg//因为当前的source.php一般是在html目录下,往上是www,var,然后到根目录。
flag一般就放在根目录下面,这里还有一个hint.php?/或source.php?/,因此需要返回四层才能到根目录。
即 hint.php?/var/www/html/ffffllllaaaagggg 

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

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

相关文章

Docker安装、使用,容器化部署springboot项目

目录 一、使用官方安装脚本自动安装 二、Docker离线安装 1. 下载安装包 2. 解压 3.创建docker.service文件 4. 启动docker 三、docker常用命令 1. docker常用命令 2. docker镜像命令 3. docker镜像下载 4.docker镜像push到仓库 5. docker操作容器 6.docker …

轻松实现文件随机提取:从众多文件夹中智能筛选指定数量文件,一键移至目标文件夹!

在信息爆炸的时代&#xff0c;电脑中的文件越来越多&#xff0c;整理起来却越来越头疼。你是否也曾在海量的文件夹中迷失&#xff0c;苦苦寻找那个特定的文件&#xff1f;你是否也曾为了将文件从一个文件夹移动到另一个文件夹而耗费大量时间&#xff1f;现在&#xff0c;我们为…

【实用技巧】Unity的InputField组件实用技巧

Unity的InputField组件非常灵活&#xff0c;提供了多种实用技巧来增强用户体验和开发效率。以下是一些有用的技巧&#xff1a; 1. 监听输入变化 使用OnValueChanged事件来监听用户输入的变化&#xff0c;这可以用于实时验证或更新UI。 inputField.onValueChanged.AddListene…

开发一个Dapp需要多少?

区块链开发一个Dapp要多少钱&#xff1f; 开发一个去中心化应用&#xff08;Dapp&#xff09;的成本取决于多个因素&#xff0c;包括Dapp的复杂性、功能需求、区块链平台以及开发团队的经验水平。以下是一些主要的影响因素&#xff1a; 1. 区块链平台&#xff1a;不同区块链…

《十八岁出门远行》世界很小,案牍劳形;世界很大,日短心长

《十八岁出门远行》世界很小&#xff0c;案牍劳形&#xff1b;世界很大&#xff0c;日短心长 余华&#xff0c;作家&#xff0c;著有《在细雨中呼喊》《活着》《文城》《兄弟》等。 文章目录 《十八岁出门远行》世界很小&#xff0c;案牍劳形&#xff1b;世界很大&#xff0c;日…

游戏心理学Day07

第二节学习 社会学习理论 按照条件反射的理论&#xff0c;个体行为的学习都是通过奖励或惩罚达到目的的 美国心理学家阿尔伯特班杜拉提出了社会学习理论&#xff0c;探讨个人的认知&#xff0c;行为与环境因素&#xff0c;三者及其交互作用&#xff0c;对人类行为的影响 记…

2048小游戏的菜鸡实现方法

# 2048小游戏的实现与分析 2048是一款非常受欢迎的数字滑块游戏&#xff0c;其目标是通过滑动和合并相同数字的方块来创建一个值为2048的方块。下面&#xff0c;我们将通过分析一个C语言实现的2048小游戏的源代码&#xff0c;来探索如何用编程实现这款游戏。 ## 游戏概述 20…

C++学习/复习13--list概述

一、list概念 1.带头双向链表 2.构造函数 3.迭代器&#xff08;其迭代器需尤其注意&#xff09; 4、size 5.front/back 6.插入删除 删除时的迭代器失效 由于list的节点特殊&#xff0c;既有数据又有指针&#xff0c;其实现需要节点/迭代器/list各成一类再组合

Linux网络编程——概念及实现双方聊天

网络编程的场景&#xff1a; 假设你面前有五座房子&#xff08;服务器&#xff09;&#xff0c;你要走到其中一座房子的某一间&#xff0c;此时你站在五座房子面前很迷茫&#xff0c;突然&#xff0c;第二座房子上面有人在叫&#xff0c;并且用汉语&#xff08;TCP/UDP&#xf…

【Framework系列】Excel转Json,配置表、导表工具介绍

今天来介绍一下Framework系列的配置部分&#xff0c;这一部分归属于Framework-Design之中。读过《Framework系列介绍》的小伙伴应该了解整个Framework框架是由多个工程项目组成&#xff0c;没看过的小伙伴可以点击链接了解一下。 Framework-Design设计的初衷是给策划同学用的&a…

上市公司绿色并购数据+do文件(1996-2024.4)

数据简介&#xff1a;手工搜集重污染上市公司的并购公告&#xff0c;采用内容分析法&#xff0c;对每次并购的背景和目的&#xff0c;主并企业和标的企业经营范围以及该次并购对主并企业带来的影响进行综合分析&#xff0c;逐一判断该项并购事件是否为绿色并购 时间跨度&#…

Python | 洗盘子(栈)

栈的基本概念&#xff08;空栈、栈顶、栈底&#xff09;和特点&#xff08;先入后出&#xff09; Python 语言确实支持栈数据结构&#xff0c;但它通常是通过列表来模拟实现的。 获取栈的长度&#xff0c;即栈中元素的数量&#xff0c;这通过len()获取列表的长度来实现。进栈…

汽车尾气排放污染的解决方案

根据公安部截至2023年底的机动车市场保有量统计&#xff0c;燃油车市场仍有不少消费者拥趸&#xff1a;目前全国新能源汽车保有量仅占汽车总量的6.07%&#xff0c;而其中的纯电动汽车保有量占比仅为76.05%。 汽车尾气排放污染已成为城市主要污染源之一。据统计显示&#xff0c…

[力扣题解] 28. 找出字符串中第一个匹配项的下标

题目&#xff1a;28. 找出字符串中第一个匹配项的下标 思路 观察法&#xff08;呵呵呵&#xff09; 代码 class Solution { public:int strStr(string haystack, string needle) {if(needle.empty()){return 0;}int i, j 0, x1, x2;for(i 0; i < haystack.size(); i){…

点盾云鹏保宝金狮金盾加密视频录屏翻录破解使用方法

在我们录网课的时候&#xff0c;通常录屏工具都会被网课播放器检测。 可以用以下程序。 这款软件采用独家方法特殊方式打开录屏工具&#xff0c;理论上通杀所有的检测进程的加密视频播放器的检测&#xff0c;不被检测。 获取&#xff1a; spjm.vip/sp/pz/wnlp.txt 使用方法…

python对视频进行帧处理以及裁减部分区域

视频截取帧 废话不多说直接上代码&#xff1a; from cv2 import VideoCapture from cv2 import imwrite# 定义保存图片函数 # image:要保存的图片名字 # addr&#xff1b;图片地址与相片名字的前部分 # num: 相片&#xff0c;名字的后缀。int 类型 def save_image(image, add…

嵌入式Linux系统编程 — 2.1 标准I/O库简介

目录 1 标准I/O库简介 1.1 标准I/O库简介 1.2 标准 I/O 和文件 I/O 的区别 2 FILE 指针 3 标准I/O库的主要函数简介 4 标准输入、标准输出和标准错误 4.1 标准输入、标准输出和标准错误概念 4.2 示例程序 5 打开文件fopen() 5.1 fopen()函数简介 5.2 新建文件的权限…

时间序列新范式!多尺度+时间序列,刷爆多项SOTA

当我们面对复杂模式和多变周期的应用场景&#xff08;比如金融市场分析&#xff09;时&#xff0c;采用多尺度时间序列来做分析和预测是个更好的选择。 这是因为&#xff1a;传统时序方法通常只用固定时间窗口来提取信息&#xff0c;难以适应不同时间尺度上的模式变化。但多尺…

全程自动化操作 自动生成图文发布,矩阵批量软件系统 日产1-3万篇

一、简介 图文发布对于现代网站运营至关重要&#xff0c;然而手动创建和发布图文内容效率低下且易出错。全自动化图文生成发布流程可以解决这个问题。本文将详细说明如何以编程方式实现这一流程。 二、模块设计 该流程主要包含三个模块&#xff1a;图像生成&#xff0c;文本生成…

python-df的合并与Matplotlib绘图

1 数据连接 concat merge join &#xff08;append 作为了解&#xff09; append 竖直方向追加&#xff0c; 在最新的pandas版本中已经被删除掉了&#xff0c; 这里推荐使用concat 1.1 pd.concat 两张表&#xff0c; 通过行名、列名对齐进行连接 import pandas as pd df1 …