一本修炼秘籍,带你打穿文件上传的21层妖塔(1)

news2025/1/14 0:45:36

目录

前言

引子

第一层:JS限制——你在玩一种很新的防御

第二层:Content-Type限制——我好像在哪见过你

第三层:黑名单绕过——让我康康!


前言

🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。

🍁个人主页:被吉师散养的职业混子

🍂相应专栏:CTF专栏

 小年快乐

引子

须臾百转,你重生在程序大陆

回望过往种种的背刺与欺压,若非通过秘宝轮回转生,怕是早已身死道消

想到这,怒火不由得燃上心头——你要去复仇


念头闪回,现在有一件好消息和一件坏消息摆在你的眼前:

  • 好消息是:重生之后你的实力虽然大跌,但凭借前世的宝物:诸神之眼(说白了就是抓包软件)依旧可以傲视本片大陆 
  • 坏消息则为:通过对外界的感知和前世对于典籍的阅读,你得知自己被困在了程序大陆大名鼎鼎的镇神塔内第一层,塔中到处都是针对于上传之力封印之灵。而随着层数的递增,封印之灵的实力也会大大增强,尤其是最后几层的封印之灵,相传最后几层的妖物动辄毁天灭地,所以才被高人出手镇压于此

上传之力,是程序大陆中的一种精神力量,通过对目标精神的试探、攻击,找出其中的漏洞,并在目标的精神中注入属于自己的webshell

第一层:JS限制——你在玩一种很新的防御

你正在思考之际,忽然感觉到一股不弱的上传之力向你的精神世界袭来

伴随着冷哼一声,在你的精神世界,你见到了攻击者的面目:是一个类似于八卦盘的怪物


“以前的战斗中没见过,不过可以看出这镇神塔果然邪性得很。。。”


双方开启了试探,你先是通过上传之力向对方的精神体中传了一个简单的一句话木马shell.php

不出意料,攻击被一层水属性的蓝色护盾挡回

(以下是现场战况

 你开启诸神之眼观察了一番,并没有观察到清晰的上传之力波动


“呵呵,你觉得不使用上传之力就能打倒我?反犬+王是为狂,今天我就让你好好记住狂的下场”


对方的防御方法,你真是再清楚不过了:

不使用上传之力,也就是压根没有连接到精神世界中的网络,仅仅是通过本地的JS校验,这样的防御虽然方便,但是死板,至于打破它的方法嘛。。。

你看着面前的八卦盘,面色凝重,上传之力全部爆发,声势惊天,然后,然后。。。

然后你一路小跑到这哥们面前,抬手就往他八卦盘上一个叫做设置的部件上扇了个大比兜

(以下是当时战况

“哈哈哈哈哈哈哈哈,笑死我了,哪有这么傻的,我对你的攻击都不过脑子,只凭借自己本能的JS检测来防御,那我直接把你设置里的JS关了不就行了,真是太傻了。。。”

伴随着愉快的笑声,你来到了第二层

第二层:Content-Type限制——我好像在哪见过你

第二层的b格显然就要比第一层高多了,是一片优美的竹林,清风阵阵,带来竹叶的清香


“有人吗?不是。。。有妖吗?

。。。。。。

回应你的只有风扶细柳,流水潺潺

没人?可能是怕了本帝的飒爽英姿吧

算了

这风如此轻柔,当真舒服,不妨先睡一觉,反正才第二层,我堂堂一届大帝,应该出不了什么大事”


一阵自我催眠后,你在自己用上传之力编织的大床中缓缓睡了过去

殊不知,在你入眠的一刻,清风忽急,聚而成势,一个巴掌大小的微型龙卷风悬浮在你的眉心之上倏地,钻入眉心之中

这时候,你还在自己的梦里看妹子(不是

突然,原本晴空万里的精神世界狂风大作,黑云下垂似鲲鹏之翼

再定睛一看,那有什么黑云

那特么真的是鲲鹏!

你仔细想了想,自己上辈子没造过孽,招收贫穷子弟免费入山门,从未做过半点亏心事

什么情况?第二层给我安排鲲鹏?鲲鹏不是死了吗?玩呢?

应该不是真的,应该不是真的

你开启诸神之眼。。。。。。

了然

原来是鲲鹏残骸上的宝羽,虽说过去了这么多年,神采依旧如故啊


你不禁感慨,同时也有一丝庆幸,当年鲲鹏陨落一战,那些名门正派打着除妖物的幌子正大光明地抢劫,你不屑与其为伍,最后乔装一番,试图从他们手下救鲲鹏一命。

可惜最后,你身受重伤,鲲鹏无可奈何,也通过自爆的方式与宵小同归于尽。

临走之前 ,他赠予你一抹意志,正是因为这抹鲲鹏意志,你才能够到如今的地步。。。


慢慢的,你也冷静了下来

发动诸神之眼,将自己的攻击修改成shell.php.png格式,因为通过对典籍的阅读,你知道,这座塔里的妖魔都是通过吸收png来维持能量,也就是,他们的精神世界只能接收png格式的文件

所以现在你通过上传之力发送的文件,一定会被他接受的。

就在鲲鹏宝羽接受的前一刻,你再一次发动了诸神之眼

这次,发动的是诸神之眼的另外一个功能:断点拦截、时间暂停

你在暂停的时间内,迅速入侵了鲲鹏宝羽的精神世界对shell.php.png开放的通道

 

 果然被骗了,死物终归还是死物

只要在上传的时候,通过拦截,将shell.php.png后的png删掉

它就会将我的攻击认为成是平时吸收的能量,毫无防备地被我入侵

结束了时间暂停,你并没有看向天空中不断爆炸的鲲鹏宝羽,而是低头看向地面


“死物终究是死物。。。

鲲鹏兄是为一代英才,可惜被小人所害,可叹,可悲,唉。。。

他人之物再好,终究本是自己无运所获,何必抢夺行窃,即丢了自己的尊严,也有伤天和

望诸君引以为戒,切勿动此邪念,也切记财不露白”


沉默

立足在原地

长久的沉默

你拾起已无宝气的鲲鹏宝羽


“终归是个念想”


第三层:黑名单绕过——让我康康!

来到第三层,诸神之眼突然开始震动


”你发什么癫?“


被你呵斥一句,诸神之眼通灵般地安静了下去


“算你懂事。

第三层,管事的出来!”


不同于前两层的寂静,这次居然有人回应你,那是一阵平静如水的女声


“您找我?


一名素衣女子缓缓走出,怎么去形容呢

这名女子不能从美丑去评价,她站在你的面前,只能让你感觉到

她很平静,平静到可怕,仿佛她有一定能杀掉你的决心与实力

不愧是大名鼎鼎的镇神台

你没有回应,多年战斗的经验让你感觉有点不对劲

你先是用打败鲲鹏宝羽的方法对面前女子如法炮制

可当你改完上传的文件名后,居然被她的精神世界排斥了出来!

???


“您只凭这点手段就想杀了我吗?

有点天真”


那女子说完,身形变换,忽然消失,

随后,你的精神世界如遭雷击,你定睛一看,那女子竟神不知鬼不觉出现在你的身后,右手已抚至你的头颅


“要不要这么猛啊,这家伙什么来头?”


诸神之眼又一次震动,你更加心烦,生死之际宝物也发癫,真是。。。。

正在抱怨间,一阵银光从诸神之眼散出

时间开始不断变慢

诸神之眼自己发动了时间暂停。

随后,一阵精神波动传入你的大脑中


“别抱怨了,刚才就想告诉你,此女子非常人,乃是传说中精卫的人形化身,估计是当年填海未遂,真身破败后四散的能量所汇聚,祸害四方,所以被大能抓入此镇神塔。

诶,别说话,我知道你想问什么。

怎么样才能干掉它,对吧?

其实也简单,用我去看它的过往今来,窥破其本质——源代码

还想说什么?刚才呵斥我道歉?算了,你一个小儿,我堂堂诸神之眼也不和你计较了,要不是你,估计我也孕育不出这器灵,虽然现在很微弱就是了。”


时间暂停的效果开始减退,你一边震惊于诸神之眼居然诞生出来了器灵,一边又想试试新学到的用法——轮回(查看源代码捏)

轮回发动

眼前的精卫突然定身,破碎开来,一张张彩色的图片从精卫的身体中逸出,你仔细地看着这些图片

突然

“找到了!”

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array('.asp','.aspx','.php','.jsp');
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

        if(!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;            
            if (move_uploaded_file($temp_file,$img_path)) {
                 $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '不允许上传.asp,.aspx,.php,.jsp后缀文件!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

原来如此。。。

        $deny_ext = array('.asp','.aspx','.php','.jsp');

它的精神世界通过此处,构建出了一个黑名单

只要我的文件中存在

.php

就会被排除

同时,通过源代码中的注释,发现也不能用大小写、末尾空格等措施绕过。

真精

有办法了

如果在它的精神世界的配置文件中有.+.ph(p[345]?|t|tml)此类的正则表达式构成,或是在其中存在类似于:AddType application/x-httpd-php .php .phtml .php3这样的语句。就可以将php3、php4、php5、phtml后缀的文件解析为php运行。

那我们直接将shell.php改成shell.php3试试

成功了!

成功传进去了!

因为轮回所四散开的精卫的前世今生,随着轮回的结束重聚人身

她还是那么平静,即使意识到自己要死了,她就这样怔怔地看着你

突然,她的眼中大放异采


是你!!居然是你!你来了!!这一切都是假的,你要小心。。。。


忽然一道霹雳从天空直击而下,精卫化身瞬间烟消云散

。。。。。。。

话说半截,最吊人胃口

你抬头看了看天空


“好像有人不想让我知道什么东西啊,

’这一切都是假的‘

假的又如何,等我打穿镇神塔,我还有何所惧?”


未完待续

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

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

相关文章

Jetpack Compose中的副作用Api

Compose的生命周期 每个Composable函数最终会对应LayoutNode节点树中的一个LayoutNode节点,可简单的为其定义生命周期: onActive: 进入重组作用域, Composable对应的LayoutNode节点被挂接到节点树上onUpdate:触发重组&#xff0c…

Dolphin scheduler在Windows环境下的部署与开发

这里写自定义目录标题环境介绍WSL2工程下载修改POM文件java版本mysql驱动修改mysql密码IDEA配置JDK8模块导出运行配置环境介绍 MySql:8.0.31 JDK:17 需要安装windows的wsl2 WSL2 首先安装好WSL2,并且通过 sudo apt-get install openjdk-17…

类模板与模板类

#include <stdio.h>#include <iostream>using namespace std;//注意必须将类的声明和定义写在同一个.h文件中 未来把它包含进来//写上关键字template 和模板参数列表template<typename T, int KSize, int KVal>class MyArray{public:MyArray();//当在类内定义…

正点原子STM32(基于HAL库)2

目录STM32 基础知识入门寄存器基础知识STM32F103 系统架构Cortex M3 内核& 芯片STM32 系统架构存储器映射寄存器映射新建寄存器版本MDK 工程STM32 基础知识入门 寄存器基础知识 寄存器&#xff08;Register&#xff09;是单片机内部一种特殊的内存&#xff0c;它可以实现…

【自学Docker】Docker HelloWorld

Docker HelloWorld Docker服务 查看Docker服务状态 使用 systemctl status docker 命令查看 Docker 服务的状态。 haicoder(www.haicoder.net)# systemctl status docker我们使用 systemctl status docker 命令查看 Docker 服务的状态&#xff0c;显示结果如下图所示&#…

HotPDF Delphi PDF编译器形成PDF文档

HotPDF Delphi PDF编译器形成PDF文档 HotPDF Delphi PDF编译器支持通过内部和外部链接完全形成PDF文档。计算机还完全支持Unicode。此外&#xff0c;在您的产品和软件中使用此计算机的最新功能&#xff0c;您可以指定加密、打印和编辑PDF文档的能力。当您加密PDF文档时&#xf…

Markdown总结

为什么要使用Markdowm 什么是Markdown?为什么需要使用Markdown&#xff1f; Markdown 是一种轻量级标记语言&#xff0c;它允许人们使用易读易写的纯文本格式编写文档。 Markdown 语言在 2004 由约翰格鲁伯&#xff08;英语&#xff1a;John Gruber&#xff09;创建。 Markdo…

openEuler 社区 2022 年 12 月运作报告

社区活跃度在社区所有开发者和用户的共同参与下&#xff0c;openEuler的3年持续迸发活力&#xff01;从0到超过1.27万名开发者&#xff0c;从0到超过100万的社区用户&#xff0c;从0到超过750家企业伙伴加入社区……截至目前&#xff0c;在大家的持续贡献下&#xff0c;openEul…

GemBox.Bundle 47.0.1012 VS Spire.Office Platinum 8.1.1

GemBox.Bundle 是一个 .NET 组件包&#xff0c;使您能够简单高效地处理办公文件&#xff08;电子表格、文档、演示文稿和电子邮件&#xff09;。 使用我们的组件&#xff0c;您可以以易于使用的形式快速获得可靠的结果。只需要 .NET&#xff0c;因此您可以轻松部署您的应用程序…

收官!OceanBase第五届技术征文大赛获奖名单公布!

OceanBase 一直在思考&#xff0c;什么样的数据库对用户而言更易用&#xff1f; 更易用&#xff0c;除了功能完善、性能优秀、运行稳定的数据库系统&#xff0c;丰富多样的生态工具也必不可少。 作为一款完全自主研发的原生分布式数据库&#xff0c;OceanBase 的生态工具经历…

基于Java SSM springboot+VUE+redis实现的前后端分类版网上商城项目

基于Java SSM springbootVUEredis实现的前后端分类版网上商城项目 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

路由 OSPF LSA介绍、1~7类LSA详细介绍

1.0.0 路由 OSPF LSA介绍、1~7类LSA详细介绍 OSPF LSA 链路状态通告( Link status announcement)&#xff0c;作用于 向其它邻接OSPF路由器 传递拓扑信息与路由信息。 LSA如何去描述拓扑信息与路由信息的呢&#xff1f; 其实是基于不同类型LSA进行描述&#xff0c;而常见的LS…

EquiBind模型源码分析

EquiBind模型源码分析 使用提供的模型权重来预测你自己的蛋白质配体对的结合结构 第 1 步:你需要什么作为输入 mol2或.sdf或.pdbqt或.pdb格式的配体文件&#xff0c;其名称包含字符串配体(配体文件应包含所有氢)。 .pdb格式的受体文件&#xff0c;其名称包含字符串protein。我…

leetcode.1819 序列中不同最大公约数的数目 - gcd + 枚举

1819. 序列中不同最大公约数的数目 目录 1、java版 2、c版 思路&#xff1a; 有n个元素的数组&#xff0c;则其子序列有 个&#xff0c;而1 ≤ n ≤ &#xff0c;则不可能枚举每一个子序列计算它的gcd&#xff0c;那样会tle我们可以逆转思路&#xff0c;因为1 ≤ nums[i]…

PhysioNet2017数据集介绍

一、数据集下载 PhysioNet2017为短单导联心电图记录的房颤分类数据集&#xff0c;下载地址如下&#xff1a;https://www.physionet.org/content/challenge-2017/1.0.0/ 二、数据集介绍 PhysioNet2017数据集主要用于对记录是否显示正常窦性心律、心房颤动&#xff08;AF&…

背包问题= =

一、01背包有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i件物品的体积是 vi&#xff0c;价值是 wi。求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。输出最大价值。&#xff08;下图是例子&#xff0c;一下…

14、ThingsBoard-自定义华为云SMS规则节点

1、概述 一个物联网平台承载着很多设备的连接,当设备出现异常的时候,能够快速的通知到运维管理员是非常重要的,thingsboard提供了自定义配置邮箱,但是它对支持发送短信的不是很友好,都是国外的sms服务商,我反正是不用那个,在国内常见就是阿里、腾讯、华为、七牛常用的s…

【Python百日进阶-数据分析】Day224 - plotly漏斗图px.funnel()

文章目录一、语法二、参数三、返回值四、实例4.1 使用 plotly.express 的漏斗图4.1.1 基本漏斗图4.1.2 堆积漏斗图4.1.3 基本区域漏斗图4.2 使用 plotly.graph_objects 的漏斗图4.2.1 基本漏斗图4.2.2 设置标记大小和颜色4.2.3 堆积漏斗图4.2.4 基本区域漏斗图4.2.5 在区域漏斗…

Postgresql遇到的问题

解决问题之前最好先下载个pgadmin可视化工具&#xff0c;下面可能要用到。先看图&#xff0c;了解基本的\n 代表是当前数据库下面schemas的文件\du 代表你有这写用户&#xff08;角色&#xff09;&#xff0c;后面代表的权限\l 代表的是你的数据库在敲命令之前你德先进去docker…

excel表格技巧:Ctrl+T在超级表中的妙用

在介绍超级表的其它奇妙功能之前&#xff0c;小编先给大家说一个在创建超级表时应该注意的小细节。在创建超级表的对话框里&#xff0c;有一个“表包含标题”的选项&#xff0c;大家一定要记得勾选哦&#xff0c;不然超级表就会变成下面这样&#xff1a;超级表会自作聪明的在表…