HTTP请求方法之一,作用是允许向服务器直接写入文件
(如果服务器开启put方法,我们不需要任何的代码支持,直接就可以上传文件)
- apache如何开启put方法
正常我们先看一下主机的IP地址是多少
我以这台虚拟机来当例子测试一下这台服务器开启的方法,我们通过直接发送一个http的数据包来测试一下
1.测试apache是否开启了put方法
telnet 172.16.132.161 80
------
OPTIONS / HTTP/1.1
HOST:172.16.132.161
------
这里我们就看到了目标服务器的所支持的方法:OPTIONS,GET ,HEAD,POST,TRACE
- apache开启put方法操作
开启模块
首先需要先开启apache的两个模块,在httpd.conf文件里搜索dav,删除前面的#号代表开启
启用模块
开启文件锁
我们需要在文件的头部写上一句话
DavLockDB c:\phpstudy\www\DavLock
保存完之后我们需要在www目录下再创建一下这个文件
接下来重启apache就可以了
- 上传文件
-----
PUT/info.php http/1.1
Host: 172.16.132.131
Content-Length: 18
<?php phpinfo();?>
-----
上面是http请求报文,前面的put是我们的请求方法,后面的路径是我们上传文件的路径
后面第三行的这个意思是我们的字符串长度是18
这样我们就可以向服务器写入一个文件,文件名就是info.php,文件内容就是php.info
这里要注意尽量不要复制粘贴因为字符长度可能会不一样,put方法是一个非常老的漏洞,基本拿到web站点检查的第一项就是检查put方法