文件上传之图片马文件头绕过(upload-labs通关笔记-第14关)
文件上传之图片马文件头绕过(upload-labs通关笔记-第14关)
系列目录
upload-labs通关笔记-第1关 文件上传之前端绕过(3种渗透方法)
upload-labs通关笔记-第2关 文件上传之MIME绕过-CSDN博客
upload-labs通关笔记-第3关 文件上传之黑名单绕过-CSDN博客
upload-labs通关笔记-第4关 文件上传之.htacess绕过-CSDN博客
upload-labs通关笔记-第5关 文件上传之.ini绕过-CSDN博客
upload-labs通关笔记-第6关 文件上传之大小写绕过-CSDN博客
upload-labs通关笔记-第7关 文件上传之空格绕过-CSDN博客
upload-labs通关笔记-第8关 文件上传之点绕过-CSDN博客
upload-labs通关笔记-第9关 文件上传之::$data绕过-CSDN博客
upload-labs通关笔记-第10关 文件上传之点多重过滤(空格点绕过)
upload-labs通关笔记-第11关 文件上传之双写绕过-CSDN博客
upload-labs通关笔记-第12关 文件上传之白名单GET法绕过
upload-labs通关笔记-第13关 文件上传之白名单POST法绕过
upload-labs通关笔记-第14关 文件上传之图片马文件头绕过
upload-labs通关笔记-第15关 文件上传之图片马getimagesize绕过
upload-labs通关笔记-第16关 文件上传之图片马exif_imagetype绕过
upload-labs通关笔记-第17关文件上传之二次渲染-CSDN博客
upload-labs通关笔记-第18关文件上传之条件竞争-CSDN博客
upload-labs通关笔记-第19关文件上传之条件竞争-CSDN博客
upload-labs通关笔记-第20关 文件上传之杠点绕过-CSDN博客
upload-labs通关笔记-第21关 文件上传之数组绕过-CSDN博客
目录
一、图片特点
二、源码分析
1、代码审计
2、渗透思路
三、制作简易图片马
1、制作脚本test14.php
2、制作图片马
(1)制作jpg图片马
(2)制作gif图片马
(3)制作png图片马
四、文件包含与图片马
五、渗透实战
1、jpg渗透
(1)上传jpg图片马
(2)获取图片URL地址
(3)打开文件包含网站
(4)利用文件包含
2、png渗透
3、gif渗透
本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第14关图片马之文件头绕过渗透实战。
一、图片特点
在upload-labs靶场的1-13关卡,判断是否为图片或者脚本,基本都是通过文件的扩展名是否在黑名单或者白名单中。然而这种方法并不可靠,判断是否是真实的图片还可以根据图片的文件结构来进行验证,比如说jpg、png和gif图片的文件特征如下所示。
- JPEG:以 FF D8 开头,以 FF D9 结束
- PNG:以89 50 4E 47 0D 0A 1A 0A开头
- GIF:以 GIF89a 或 GIF87a 开头,十六进制以47 49 46 38开头
-
GIF89a(较新版本,支持动画和透明色)
-
十六进制:
47 49 46 38 39 61
-
ASCII:
GIF89a
-
-
GIF87a(旧版本,基础功能)
-
十六进制:
47 49 46 38 37 61
-
ASCII:
GIF87a
-
-
二、源码分析
打开靶场14关,查看源码进行源码分析,发现本小节依旧是白名单绕过,不过判断是否为图片的方法不是根据文件名的后缀,而是根据文件内容的前两个字节判断是否上传类型 为图片,具体源码如下图所示。
1、代码审计
这段代码实现了一个文件上传功能,并且通过读取文件的二进制头部信息来判断文件的真实类型,只允许已知类型(JPEG、PNG、GIF)的文件上传,同时对上传过程中的不同情况给出相应的提示信息。详细注释后的源码如下所示。