目录
前言
引子
第一层:JS限制——你在玩一种很新的防御
第二层:Content-Type限制——我好像在哪见过你
第三层:黑名单绕过——让我康康!
🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 🍁个人主页:被吉师散养的职业混子 🍂相应专栏:CTF专栏
小年快乐
须臾百转,你重生在程序大陆
回望过往种种的背刺与欺压,若非通过秘宝轮回转生,怕是早已身死道消
想到这,怒火不由得燃上心头——你要去复仇
念头闪回,现在有一件好消息和一件坏消息摆在你的眼前:
上传之力,是程序大陆中的一种精神力量,通过对目标精神的试探、攻击,找出其中的漏洞,并在目标的精神中注入属于自己的webshell
你正在思考之际,忽然感觉到一股不弱的上传之力向你的精神世界袭来
伴随着冷哼一声,在你的精神世界,你见到了攻击者的面目:是一个类似于八卦盘的怪物
“以前的战斗中没见过,不过可以看出这镇神塔果然邪性得很。。。”
双方开启了试探,你先是通过上传之力向对方的精神体中传了一个简单的一句话木马shell.php
不出意料,攻击被一层水属性的蓝色护盾挡回
(以下是现场战况
你开启诸神之眼观察了一番,并没有观察到清晰的上传之力波动
“呵呵,你觉得不使用上传之力就能打倒我?反犬+王是为狂,今天我就让你好好记住狂的下场”
对方的防御方法,你真是再清楚不过了:
不使用上传之力,也就是压根没有连接到精神世界中的网络,仅仅是通过本地的JS校验,这样的防御虽然方便,但是死板,至于打破它的方法嘛。。。
你看着面前的八卦盘,面色凝重,上传之力全部爆发,声势惊天,然后,然后。。。
然后你一路小跑到这哥们面前,抬手就往他八卦盘上一个叫做设置的部件上扇了个大比兜
(以下是当时战况
“哈哈哈哈哈哈哈哈,笑死我了,哪有这么傻的,我对你的攻击都不过脑子,只凭借自己本能的JS检测来防御,那我直接把你设置里的JS关了不就行了,真是太傻了。。。”
伴随着愉快的笑声,你来到了第二层
第二层的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试试
成功了!
成功传进去了!
因为轮回所四散开的精卫的前世今生,随着轮回的结束重聚人身
她还是那么平静,即使意识到自己要死了,她就这样怔怔地看着你
突然,她的眼中大放异采
是你!!居然是你!你来了!!这一切都是假的,你要小心。。。。
忽然一道霹雳从天空直击而下,精卫化身瞬间烟消云散
。。。。。。。
话说半截,最吊人胃口
你抬头看了看天空
“好像有人不想让我知道什么东西啊,
’这一切都是假的‘
假的又如何,等我打穿镇神塔,我还有何所惧?”
未完待续