利用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一下 谢谢分享
小数点的十六进制不是0x2e吗。。。文不对题。。
大佬,他输入的是. 你说十六进制是0x2e; 是不是还是跟&#有关xi,不太明白你和贴主的意思,能稍微再说说嘛
目测应该是和截断有关,php遇到windows特性可以建立空文件
小数点的十六进制不是0x2e吗。。。文不对题。。
对啊。,4页回复全是白痴,就你一个人看懂天机。
小数点的十六进制不是0x2e吗。。。文不对题。。
一直用截断 没试过编码
我试过这个 好像传上去以后文件名是xxx.php.jpg
i春秋好像有一样的。。
求链接。她标题叫啥我去找找。这姿势真心没见到过。不明白。mmp
楼主可不可以pm发一下这个案例。我想去了解一下究竟为何会这样。或者把她上传的脚本贴出来看看是什么情况。是
。。。你这个真正起作用是 & 跟#号 不信你试试 x.php&1.jpg 也可以
为啥那么说?不太明白,
有点碰巧的感觉。我觉的可能是某个符号起作用了
可以将程序文件发上来看看嘛
先学xi下,不过还是xi望大佬能把代码发出来大家继续探讨下
这个应该不是通杀的,是上传程序的问题,既然已经拿到shell了,为何不把上传程序代码发出来看看
第一次看见这种手法,学xi了
感谢楼主
楼主日下了贴个上传代码吧我想看看到底是程序问题还是服务器解析数据问题
楼主这种骚思路学xi到了
感觉 你这个是利用 windows 特性,没法建立特殊名字的文件,但是你这样 没法往文件里面 写内容吧,之前 吐司群里 rices 大牛说过,而且 当时 我们也测试过.我猜测,之所以 写入了shell,是因为这段代码里面的逻辑是读取了文件,然后重写写入了新文件,并进行重命名,或者是直接重新重命名然后写入内容,可能猜测的不对,
骚思路&后面的不算么。算是截断吧