近来无事,研究下网络安全,看到了%00截断这个东西,百度下发现网友对与如何操作解释的很详细,但是原理却没有仔细解释,所以根据现象,我猜测了一下原理,大致如下:
php5.3以下存在此漏洞,上传图片时,传入shell.php肯定不会被通过.所以上传shell.php.jpg,这样前端就认为是图片了,但是后台可能自己重命名文件,所以会变成20180808.jpg这种,导致无法执行脚本,因此改变文件名为shell.php%00.jpg,首先骗过前端,其次后台php读取到%00后,后面的内容不再执行,就会把shell.php%00.jpg截断成shell.php,即使重命名为20180808.php仍可运行
由于该漏洞只在php5.4以下和asp网站中有效果,而现在php普遍在5.4以上,asp网站又很少了,所以估计这个漏洞也被堵上了吧,百度看到文章的时间大多都是15年的,所以我也没有亲自去尝试,只是大致猜测了一下,如有错误,欢迎指正