【攻防世界】warmup (代码审计)

进入题目环境,只有一个表情:

ctrl + u 查看源代码:

源代码提示我们访问 /source.php。访问结果如下:

我们进行代码审计,发现解题的关键点 include &_REQUEST['file']。但是题目使用了白名单进行了过滤。我们发现白名单中有 hint.php,尝试访问:

通过访问 hint.php 可知,flag在ffffllllaaaagggg中,读取ffffllllaaaagggg为我们现在的主要目的。

我们继续审计过滤函数 checkFIle():

首先利用 in_array函数检查 $page 是否在 白名单中,以此返回 true or false。

然后利用 mb_substr() 函数 与 mb_strops()函数来截取 $page 字符串中 第一个字符到第一个 "?" 的位置中间的字符串,并检查所截取字符串是否在白名单中,以此返回 true or false。

mb_substr() 函数:

第一个参数 $page : 所要截取的目标字符串。

第二个参数 0 :开始截取的初始位置。

第三个参数 :结束截取的位置。

mb_strpos() 函数:

第一个参数:目标查询字符串。

第二个参数:要查找的字符。

第三个参数:规定开始搜索的位置。若未提供此参数,将从字符串头开始搜索。

最终函数返回要查找字符第一次出现的位置。

根据过滤函数的过滤特性,我们可以构造payload:

?file=source.php?/ffffllllaaaagggg

为什么要使用 ?/ 的格式。

如果include的文件名中含有“/”,那么它会识别其为一个带目录的文件,只有最后一个“/”后的字符串对应的文件会被包含,而前面的字符串都只是在指定目录。

故我们可以利用 ../ 来回到上一级目录中,通过不断回溯找到 ffffllllaaaagggg 文件并读取。

构造 payload 并提交,页面如下:

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

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

相关文章

dcoker 下redis设置密码

修改Docker里面Redis密码 Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列和数据持久化等场景。在使用Docker部署Redis时,默认情况下是没有设置密码的,这可能会导致安全隐患。因此,为了保证数据的安全性&…

网络攻防中的信息收集

目录 1.确定目标 2.目标阔线收集 2.1.子域名爆破 2.2.空间资产测绘 2.3.相关工具协助 3.指纹识别 4.相关地址 4.1.网站备案 4.2.资产测绘平台 4.3.工具 在渗透测试过程中,前期的一个信息打点过程可谓是尤为重要,但是如何做好前期的信息收集方式…

如何迁移WordPress站点

本周有一个Hostease客户,新购买linux虚拟主机,把WordPress站点,从旧主机迁移hostease新购买的Linux虚拟主机上,问题该如何操作,保证站点数据不丢失。通过我们提供教程,用户操作非常简单,并很快完…

2024052期传足14场胜负前瞻

2024052期售止时间为4月3日(周三)22点00分,敬请留意: 本期深盘多,1.5以下赔率7场,1.5-2.0赔率1场,其他场次是平半盘、平盘。本期14场难度中等偏下。以下为基础盘前瞻,大家可根据自身…

HBase详解(1)

HBase 简介 概述 HBase是Yahoo!公司开发的后来贡献给了Apache的一套开源的、分布式的、可扩展的、基于Hadoop的非关系型数据库(Non-Relational Database),因此HBase并不支持SQL(几乎所有的非关系型数据库都不支持SQL),而是提供了一套单独的命令和API操…

【蓝桥杯第十四届省赛B】(部分详解)

【01串的熵】 https://www.lanqiao.cn/problems/3498/learning/?subject_code1&group_code4&match_num14&match_flow1&origincup #include <iostream> #include<cmath> using namespace std; int main() {double n23333333;double sum0;for(int…

C语言之通讯录

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

群晖NAS使用Docker部署大语言模型Llama 2结合内网穿透实现公网访问本地GPT聊天服务

文章目录 1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址 随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛&#xff0c;包括聊天机…

FME学习之旅---day19

我们付出一些成本&#xff0c;时间的或者其他&#xff0c;最终总能收获一些什么。 如何使用 Esri 模板地理数据库 在学习之初&#xff0c;首先了解什么是Esri模板、如何使用Esri模板以及如何创建Esri模板 有两种类型的 Esri 模板&#xff1a;文件地理数据库 &#xff08;.gd…

nginx代理解决跨域问题

文章目录 一、什么是跨域、跨域问题产生的原因二、注意事项三、nginx代理解决总结 一、什么是跨域、跨域问题产生的原因 跨域&#xff08;Cross-Origin&#xff09;是指在 Web 开发中&#xff0c;一个网页的运行脚本试图访问另一个网页的资源时&#xff0c;这两个网页的域名、…

Java进阶-反射的详解与应用

本文深入探讨了Java反射机制的核心概念、应用实例及其在现代Java开发中的重要性。文章首先介绍了反射的基本原理和能力&#xff0c;包括在运行时动态获取类信息、操作对象字段和方法的能力。随后&#xff0c;通过具体代码示例&#xff0c;展示了如何利用反射进行字段访问、方法…

idea 报错 Could not list the contents of folder “ftps

idea 报错 Could not list the contents of folder "ftps 解决方案 这里看到了网上的解决方案&#xff0c;顺便再记录一下。打开 【高级】菜单 - 取消勾选 被动模式。然后点击测试连接&#xff0c;显示连接成功&#xff01; ftp中的主动模式和被动模式 主动模式&…