利用16进制编码转换小数点突破上传
服务器:Linux
环境:nginx/1.4.7
脚本:PHP Version 7.0.0
上传情况简介:
上传 111.jpg111 确实可以成功的但是上传 1.php.jpg1111.1 失败了?,这个告诉我们,文件名必须包含 jpg 三个字母,且 后缀必须为 .jpg 当然你也可以不给他.jpg 但是不能为其他 .* 意思就是 你可以这样:1.phpjpg 或者 1.phpng 在或者 1.jpg1213456 但是就是不能 1.jpg .php
尝试 .php.jpg111.1 失败
上传 111.jpg111 确实可以成功的,
所以我们当前上传判断是这样的, jpg是必须带入到文件名 且后缀 小数点后方必须为 jpg 或者其他图片格式(jpeg png gif bmp),我们利用 将小数点转换为 16进制编码。从而绕过、。
于是用了上传
111.php.jpg
Getshell
这个转换后的16进制小数点,是进行了类似于%00的00截断还是跟服务器关系?各位表哥不妨试试。
评论45次
谢谢分享。收藏了
这种手法还是第一次见啊,学xi收藏了。。
上传后文件是cms重新命名的吗
是的
。。。你这个真正起作用是 & 跟#号 不信你试试 x.php&1.jpg 也可以
上传后文件是cms重新命名的吗