目录
前言:
仅记录我收集知识的历程
考点:
PNG 文件上传
finfo_file() 函数原理。
getimagesize() 函数原理与绕过
代码审计
解题:
进入环境:
首先登录,进入上传页面。
提示 上传小于256kb ,小于256px*256px的PNG图片
上传 . php 然后抓个包看看回显。
返回了 cookie , 以点号分割,应该是 jwt 格式,复制这个cookie到jwt网页上:JSON 网络令牌 - jwt.io
提示我们上传的 不是PNG 格式,bp 改一下后缀,改成PNG,相应的,Content-Type: 也改成 image/png
依旧返回了 cookie ,再去解码看看返回的什么。 解码后,依旧是 不为 PNG文件。
思路到这,还是不知道他过滤了什么,可能是文件头格式,但现在 上传一个正常的png文件试试,说不定还能遇到 任意文件读取,或者目录穿越。