关于学院文件上传靶场第14关的分析及疑问

ccie38189   ·   发表于 2020-06-22 06:36:33   ·   闲聊灌水区

首先打开了靶场的初始页面,根据任务要求,需要.jpg/.gif/.png三种后缀都包含一句话木马上传成功才可以

尝试上传.gif/.png后缀文件,完成后下载发现一句话木马仍然包含在内

但是尝试上传.jpg后缀文件时,系统会提示:“文件为止,上传失败”,尝试上传没有加入一句话木马的.jpg文件依然如此

通过分析代码得知isImage自定义函数中变量$types的值为.jpeg|.png|.gif变量$info的值为通过getimagesize()函数获取的上传图片文件类型,通过实验得知该值类型为数组,查找资料得知其中[2]键值为整数代表文件类型(1=GIF,2=JPG,3=PNG…)

变量$ext的值为从变量$info中选取[2]键值,并使用image_type_to_extension()函数获取对应后缀名,通过试验得知当上传图片格式为jpg时获取到的后缀名为.jpeg

此时通过stripos()函数获取变量$ext在变量$types中位置时,由于.jpeg处于$types值的第一位,所以位置为0,通过试验得知当if条件为0时判断结果为False,

所以当上传图片为jpg格式时isImage函数将返回false

变量$res的值为通过自定义函数isImage计算,当isImage函数返回false时,条件语句判断!$res(即不为false)时变量$msg会被赋值“文件位置,上传失败”,所以通过以上分析得知当上传文件格式为jpg时会上传失败

修改本地存储的靶场源码,在变量$types的赋值前加入任意字符,使stripos()函数查找jpg格式文件时位置不为0即可解决该问题

但由于学院靶场环境源码是我等屁民无法修改的,所以该题目要求无法实现……
本次作业在这道题卡的时间应该是最长的,因为各种函数的不理解,需要查资料、模拟实验等,由于对开发语言的不了解加之实验语句各种出错,本题从尝试解题到最终找到原因用了接近三小时,另外在写本题时,也尝试参考其他同学的作业寻找大家的解法,发现同学们大多数略过了这道题,为数不多的写出答案的也只是上传了一张图片,没有解法,所以在此想请教下论坛的各位大神这道题该如何实现呢?

打赏我,让我更有动力~

3 条回复   |  直到 2020-6-22 | 1409 次浏览

urfyyyy
发表于 2020-6-22

花里胡哨的
copy 2.png/b+1.php c.jpg
这不就完事了?

评论列表

  • 加载数据中...

编写评论内容

urfyyyy
发表于 2020-6-22

这样getimagesize不就获取到的一直是png了么

评论列表

  • 加载数据中...

编写评论内容

holic
发表于 2020-6-22

大佬,你是真滴闲着没事干 【狗头】

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.