我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

目录

前言

引子

第一层: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试试

成功了!

成功传进去了!

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

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

突然,她的眼中大放异采


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


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

。。。。。。。

话说半截,最吊人胃口

你抬头看了看天空


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

’这一切都是假的‘

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


未完待续

来源地址:https://blog.csdn.net/m0_55400802/article/details/128684646

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录