文件上传解析漏洞(二)、Upload-labs-master11-19Wirteup
今天接着上次的pass1-10,给大家分享pass11-21的writeup,有喜欢的小伙伴希望点个赞。
再此之前,首先介绍一下%00截断和00截断
%00截断和00截断
了解%00实际上我们要先了解0x00,0x00实际上是一个十六进制表示方式,实际上就是表示ASCII码值为0,有些函数在处理这个字符的时候会把这个字符当做结束符,他们就读取到这里认为这一段结束了。
在文件上传时,如果遇到了白名单机制只允许上传jpg后缀的,在没有解析漏洞的情况下我们该怎么办?
JPG格式并不会被解析,那么我们需要绕过上传过滤。
假设我写了1.php%00.jpg传参之后,有些过滤都是直接匹配字符串,他强行匹配到了结尾是.jpg,然后允许上传,但是随着php函数去执行的时候他读取到0x00认为结束了,那么这个文件就变成了1.php。
%00实际上和00截断是一个原理,只不过%00是经过URL编码的,%00解码后就是0x00截断的那个字符。
pass-11
查看源码:
发现黑名单的绕过方式都已经被过滤,因此我们这里就可以尝试%00截断