目录
1、文件上传漏洞介绍
2、pikachu-client check
3、pikachu-MIME type
4、pikachu-getimagesize
最近在学习文件上传漏洞,这里使用pikachu靶场来对文件上传漏洞进行一个复习+练习
废话不多说,开整
1、文件上传漏洞介绍
pikachu靶场是这样介绍文件上传漏洞的:
文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。
如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。
所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如:
–验证文件类型、后缀名、大小;
–验证文件的上传方式;
–对文件进行一定复杂的重命名;
–不要暴露文件上传后的路径;
–等等…
总结一下文件上传漏洞成功需要有下列四大前提:
-
目标具有文件上传功能
-
上传后的文件能够被Web服务器解析执行
-
知道文件上传到服务器后的存放的物理路径和文件名称
-
目标文件可以被用户访问
这里借用大佬总结好的一个图片就可以很好的阐述文件上传的整个过程、防御手段和绕过方法:
下面就对pikachu靶场中的文件上传模块进行通关来练习一下文件上传漏洞
2、pikachu-client check
来到第一关client check关卡可以看到如下页面:
可以看到我们可以上传一个图片,并且页面也说明了“只允许上传图片”的字样,点击提示可以看到 这一关的检验应该是在前端检验的
尝试上传一个php文件:
可以看到不让上传php文件,那么我们想要上传php文件必须要绕过限制:
方法1:浏览器禁用JS
我这里使用的是火狐浏览器,其他浏览器可以去百度搜:
将true修改为false后再次尝试上传php文件:
可以看到现在就可以上传成功了,访问该文件
可以看到成功解析
方法2:抓包修改后缀
第二种方式就是新建一个php文件然后内容是phpinfo();
然后将后缀修改为jpg,上传文件时,抓包修改后缀就可以看到成功上传了
修改前:
修改后:
可以看到确实上传了
尝试访问:
成功解析
我给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!需要的微信扫描下方二维码领取~

3、pikachu-MIME type
下面来到了第二关,MIME type ,可以看到如下页面:
还是一个上传页面,提示可以看到让我们MIME type了解一下,那么我们就来了解一下:
MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于标识在互联网上传输的文件的类型和格式。每个MIME类型都由一个唯一的标识符表示,通常以文件的扩展名结尾,例如"text/plain"表示纯文本文件,"image/jpeg"表示JPEG图像文件。
MIME类型在Web开发中非常重要,因为它们告诉浏览器如何处理特定类型的文件。例如,如果服务器将一个文件标识为"text/html"类型,浏览器将会以HTML格式显示它,而如果文件是"image/png"类型,浏览器将会以PNG格式显示它。
知道了MIME是啥了后我们来尝试上上传一下:
可以看到这里图片只能上传指定格式的,这说明后端检测使用了白名单格式,那么我们可不可以像上面一样先上传一个jpg文件抓包然后修改后缀绕过限制呢?实践一下:
可以看到也是上传成功了
尝试访问:
我给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!需要的微信扫描下方二维码领取~
成功解析
这里也可以进行反向操作,即先上传一个php文件,抓包,将MIME修改为图片的格式也是可以绕过限制上传成功的
尝试访问:
我给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!需要的微信扫描下方二维码领取~
成功解析
4、pikachu-getimagesize
来到这一关,可以看到还是熟悉的页面,点击提示会发现需要了解婴喜爱getimagesize
那么来学习一下getimagesize:getimagesize是一个PHP函数,用于获取图像文件的尺寸和类型。该函数可以接受一个图像文件的路径作为参数,并返回一个包含图像宽度、高度和MIME类型的数组。
下面来试着上传一个php文件:
上传一个php文件可以发现提示上传的后缀名不能为空,那么也就是说如果四非jpg/jpeg/png中的一个后端就会将后缀置为空,下面就要尝试绕过限制,抓包阐尝试:
尝试大小写绕过:
尝试双写绕过:
可以看到大小写和双写都无法绕过
这里我发现自己忘记了这一关是getimagessize,才想起来这个意思就是看你文件的文件头,不同的文件又不同的文件头,即便你改了后缀,文件头是不变的
因此这里需要保证上传的文件是图片,但是还是想要带上自己的php代码,这里就需要使用到“图片马”了
需要一张图片+一个php文件,使用下列命令生成图片马:
可以看到成功上传了,尝试访问:
可以看到成功的访问了,但是并没有解析,说明还是还是没有用的,这里就要配合后面我要复习的文件包含漏洞来使用才能正常访问
访问如下URL,利用文件包含来访问就可以成功的解析了:
http://localhost/pkav-labs/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2024/05/13/1937146641fe79d292f581494212.jpg&submit=%E6%8F%90%E4%BA%A4
到此pikachu中的文件上传漏洞就通关了
参考链接:
文件上传漏洞:upload-labs靶场通关_文件上传漏洞靶场闯关教程-CSDN博客
👇👇👇
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 |
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


**读者福利 |**
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)