文件上传之—00截断
1.什么是00截断
事实上0x00,%00,/00这三类阶截断都是属于同种原理,只是表示不同而已
下面是用 URL 编码形式表示的 ASCII 字符
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束
如在1.php文件名改为1.php%00.jpg会被解析为1.php,这样就能绕过后缀限制,上传shell
2.00截断测试
php版本要小于5.3.4,5.3.4及以上已经修复该问题(asp版本不清楚 )
magic_quotes_gpc需要为OFF状态
测试网站:本地靶机
测试工具:burt suite
1)将php文件后缀改为php .jpg后上传
2)上传之前将burt suite配置好后进行抓包
右键发送至repeater
3)将 .jpg中的空格改为%00从而使文件变为php文件
紧接上一步,点击repeater->hex;找到上传的文件名,将20改为00
(20为空格的进制码,00为截断的)
4)点击Go运行一下然后放行,上传成功
由于靶机自身原因未能上传成功,一定要注意网站是否满足条件