利用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了。
感谢分享,学xi了~~
有没有大佬解释下原理,有点看不明白
。。。你这个真正起作用是 & 跟#号 不信你试试 x.php&1.jpg 也可以
大佬才是真正明白其所以然的人
i春秋好像有一样的。。
我发的
你这是瞎猫碰上死耗子啊。。。
不算是
i春秋好像有一样的。。
已经拿到shell了 看看上传图片那部分代码咋写的就知道了呀
应该是对特殊的字符缺少检查,基于自身代码的逻辑判断标准,所以直接放行了上传成功
和小数点编码真没太大关xi,&#才是真的
&#为什么可以啊。我脑洞有点大,怎么想了起SQL语句#注释掉后面的语句。
你这是瞎猫碰上死耗子啊。。。
这个对php有没有版本要求?
。。。你这个真正起作用是 & 跟#号 不信你试试 x.php&1.jpg 也可以
请问大佬这个是什么原理啊?
和小数点编码真没太大关xi,&#才是真的
这个。。只是截断了跟编码小数点应该没什么关xi。。。
这个利用条件一定是php7.0才行吗?
学xi了楼主的骚思路。感谢了
没怎么看懂,1.php:a.jpg这种不行吗?楼主把上传代码放出来大家观摩下
你这样只能写个空的1.php文件把.....
忘记了,以前测试过,或者特殊符号,让xi统没法建立这个文件
没怎么看懂,1.php:a.jpg这种不行吗?楼主把上传代码放出来大家观摩下
你这样只能写个空的1.php文件把.....
没怎么看懂,1.php:a.jpg这种不行吗?楼主把上传代码放出来大家观摩下