00截断
00就是null(空)字符,URL中标签为%00。00截断会导致文件上传路径截断
本身我们打算吧test.php当作一个一个文件来存储,结果程序自动认为成了路径,所以我们需要再.php后面加上%00,使用00截断,来让文件存储到tese.php中,这时候我们直接访问.php就可以执行
.htaccess攻击
.htaccess是apache服务器的分布式配置文件,该文件会覆盖apache服务器的全局配置,作用域是当前目录和其子目录。
如果一个服务器允许上传.htaccess文件的话是非常危险的,那就意味着攻击者可以更改apache的配置
首先我们需要查看apache是否开启允许.htaccess覆盖全局配置
首先我们来到apache根目录下看到有一个allowoverride all,这个开启之后代表允许上传.htaccess文件,不同的apache版本不一样,一般是默认关闭的,下面举几个例子
- 将.png文件当作php进行解析
把下面代码写入文件,保存成.htaccess名字放到测试目录下
AddType application/x-httpd-php.png
在同一目录下创建一个文件[info.php],文件内容如下
<?php
Phpinfo();
?>
当我们访问文件时,[info.php]内的php代码就会被执行
- 文件中包含php关键字
当文件名[infp.php.png]中包含关键字[.php],并且.htaccess文件内容如下,info.php.png
就可以被执行
AddHandLer php5-script php
这个图片从本质上讲也是一个png图片,