简单利用HTTP中的PUT协议拿下SHELL
Posted CnHacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单利用HTTP中的PUT协议拿下SHELL相关的知识,希望对你有一定的参考价值。
第一次用方法拿shell,之前遇到的都是没有写入权限的。
站太辣鸡,纯粹练手,就不打码了。
此次实战会用到的HTTP请求方法:
OPTIONS,PUT,MOVE/COPPY
* 战前准备
0x01 什么是OPTIONS方法?
此方法用于请求获得由URL标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要的措施,或者了解服务器的性能。
0x02 什么是PUT方法?
PUT方法是HTTP请求方法中的一中。此方法用于请求服务器把请求中的实体储存在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原先的数据,作为指定资源的最新修改版。如果请求指定的资源不存在,将会创建这个资源,且数据位请求正文。
0x03 什么是MOVE/COPY方法?
这是因为WebDav(WebDav是一中基于HTTP/1.1协议的通信协议)扩展了HTTP协议,在GET,POST,HEAD等几个HTTP标准方法以外添加了一些新的方法,使HTTP协议更强大。
COPY和MOVE,也就是复制和移动,这两个也起着改名的作用。
*实战开始
1.用OPTIONS方法查看服务器信息。
我们可以看到
服务器容器为IIS6.0
网页脚本是ASP
被允许的方法有OPTIONS,TRACE,GET,PUT,MOVE,COPY等方法。
2.用PUT方法尝试写入一个asp。
(但是发现并不能写入,cer格式的也尝试了。)
但是发现.html后缀却能够写!
天无绝人之路,服务器容器是IIS6.0能干嘛?答案是利用解析漏洞啊!
(curl不会用copy和move命令,然后也找了很久没找到合适的copy方法利用的工具,干脆打开虚拟机用windows软件来搞)
3.PUT+COPY/MOVE对文件修改拿下shell
顺便说一句,为何一开始不用windows的工具用PUT方法写?因为windows下的那款工具,直接写PUT会报错,所以必须要先存在一个文件,然后重新PUT一次,然后COPY/MOVE改名。
第二次对文件写入shell,方法为PUT。
然后用COPY/MOVE对文件改名,这里只用COPY改名。
访问shell。
OK成功拿下。
以上是关于简单利用HTTP中的PUT协议拿下SHELL的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 协议的 PUT 和 DELETE 及其在 PHP 中的使用
IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法