本来还以为挖到金矿了,跟黑哥交流后发现只能应用于Win32平台,使这个BUG的威力暴减,基本没有太大危害了,因为在WIN32平台使用PHP的实在太少了。
include $_GET[file].”.php”;
以前我们使用%00来截断,现在的PHP版本基本上已经失效了。挖掘思路是黑哥之前提到的结合多个环境下的条件,触发漏洞。操作系统对文件名有长度的限制,如果我们的$_GET[file]超过这个长度限制,那么PHP代码中最后面的.”.php”就会失效,这里的截断与%00的截断原理上应该不一样。
利用方法:index.php?file=some.txt/////////////////////….[超过一定数量的/]
LINUX平台下目前尚不知如何利用,呜呼
Ryat
01月 20th, 2008
部分Linux主机下也可以,只是/的数量要更多些(要使文件路径名长度大于4096字节),看看下面的代码片断:
复制内容到剪贴板代码:
在Linux环境下测试,你会发现’.php’被截断了,成功的包含了test.txt:)
axis
02月 6th, 2007
win下的MaxPath是260字节
linux下好象也有限制,似乎是512??
傲少
02月 5th, 2007
要构造数据包了,纯手工的去测试,那会累死的。
试用了resin下的读一些代码的漏洞。蛮好玩的。可惜读到class,有乱码,需要反编译。试了几个工具都不能正确反编译。有些郁闷。
cloie
02月 5th, 2007
PS,resin下的jsp的include只需要一个/即可