简单利用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成功拿下。

时间: 2024-10-13 12:46:53

简单利用HTTP中的PUT协议拿下SHELL的相关文章

利用QT中Qpainter画点,直线,弧线等简单图形

MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H #include <QWidget> class MyImgTest : public QWidget { //Q_OBJECT public: MyImgTest(QWidget* parent = 0); ~MyImgTest(); void paintEvent(QPaintEvent *); }; #endif MyImgTest.cpp: #include "MyImg

利用ES6中的Proxy和Reflect 实现简单的双向数据绑定

利用ES6中的Proxy (代理) 和 Reflect 实现一个简单的双向数据绑定demo. 好像vue3也把 obj.defineProperty()  换成了Proxy+Reflect. 话不多说,直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>proxy</title> </hea

简单谈谈JVM中的GC(中)

书接上文,在了解JVM的分代模型后,接着来简单聊聊JVM中GC算法和不同的GC收集器[求关注] GC回收算法 一个GC回收算法通常会做这么几件事: 1.遍历内存,找到被引用的对象 2.清理掉这些未被标记对象的内存 3.被清理掉的内存放回内存中,供其他地方使用 上文也提及过,目前JVM中的搜索引用对象是用的根搜索方式,再重复引用下: 所有的Java对象构成一颗近似"搜索树"的结构,有一个root根节点,每次从root出发向下搜索,当整个树遍历完成后,那些不在其中的变量则视为"垃

如何利用excel中的数据源制作数据地图

关于这个问题,制作数据地图的方法已不新奇,总体来说有这么几类方案: 一类方案:直接在excel里制作 优势:个人小数据量应用较为方便简单 缺点:需要熟悉VBA,且更强大的功能对VBA水平要求较高 1.绘制地图图形 + VBA宏语言 思路:用插入图形"任意多边形"绘制地图:每一个"任意多边形"赋予正确名称:对"任意多边形"赋值:利用VBA对"任意多边形"的值进行操作, 例如上色. 先准备一张所需要的地图图片,网上都有,可以下载

TwinCAT 3中基于UDP协议通讯的C++实现

因为项目需要,学习了TwinCAT3中使用UDP协议进行通讯的基本知识.这个做个简单的笔记,方便以后查询. 1 概述 倍福为了实现从实时环境中直接访问网卡(network cards)专门提供了一个函数 “TCP/UDP Realtime”, 这个访问要么来自PLC(61131-3), 要么来自C++.这个函数对使用以下协议进行的通讯提供支持: TCP/IP UDP/IP ARP/Ping TC3中使用该函数实现网络通信的示意图如下所示: 不管使用何种协议, 在基于该协议的项目和TC3之间的通讯

蓝牙简单配对(Simple Pairing)协议及代码流程简述

kangear注: 文章转自:http://blog.csdn.net/myxmu/article/details/12217135 原文把图给搞丢了,但是文章太好了,这个时候我就发挥多年的Google和人脉关系根据链接找到了,补上图(这个图是MTK内部用图). [DESCRIPTION] 在BT2.1及之后版本,蓝牙协议有在传统的密码配对(PIN Code Pairing)之外,新增一种简单配对(Simple Pairing)的方式.这种新的配对方式操作更为简单.安全性也更强.目前市面上大部分

利用CSS3 中steps()制用动画

.monster { width: 190px; height: 240px; margin: 2% auto; background: url('http://treehouse-code-samples.s3.amazonaws.com/CSS-DD/codepen/blog/monster.png') left center; animation: play .8s steps(10) infinite; } @keyframes play { 100% { background-posi

详解Objective-C中委托和协议

Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有关系,只是我们经常利用协议还实现委托的机制,其实不用协议也完全可以实现委托. AD:[活动]Web和APP兼容性实战 Win10训练营免费报名 Objective-C中委托和协议是本文要介绍的内容,委托和协议是两个概念,协议实际上相当于C++中的纯虚类的概念,只定义并只能由其它类来实现.而委托类似于Java中的接口.(Objective-C实现委托这种机制是利用协议来实现的,这种说

用Netty和Raphael来写塔防online游戏(二) - JS中使用protobuf协议

一. 简单介绍一下protobuf: Protocol Buffers are a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more, originally designed at Google . 如今,已经有人用JS实现了protobuf协议,就是ProtoBu