目录

  • 1 http协议请求方法概述
  • 2 Apache开启PUT请求方法的过程
    • 2.1 实验环境
    • 2.3 查询已开启的请求类型
    • 2.3 开启put方法
  • 3 文件上传漏洞利用
    • 3.1 上传PHP探针
    • 3.2 上传WebShell
  • 4 总结
  • 参考文章

1 http协议请求方法概述

具体http/https协议及通信过程可以参考文章《【基础协议】HTTP/HTTPS协议及其工作流程》

常见的请求方法及概述

  • GET:向特定的资源发出请求。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
  • HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
  • PUT:向指定资源位置上传其最新内容。
  • DELETE:从服务器上删除资源。需要把要删除的资源的ID上传给服务器。
  • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可利用向Web服务器发送’*'的请求来测试服务器的功能性。
    TRACE:回显服务器收到的请求,主要用于测试或诊断。
    CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

PUT请求方法

  • 详细作用:通常用于向服务器发送请求,如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。
  • POST和PUT的请求根本区别:POST请求的URI表示处理该封闭实体的资源,该资源可能是个数据接收过程、某种协议的网关、或者接收注解的独立实体。然而,PUT请求中的URI表示请求中封闭的实体-用户代理知道URI的目标,并且服务器无法将请求应用到其他资源。如果服务器希望该请求应用到另一个URI,就必须发送一个301响应;用户代理可通过自己的判断来决定是否转发该请求。

2 Apache开启PUT请求方法的过程

2.1 实验环境

服务器:win2008部署WAMP环境,开启phpstudy,IP地址172.16.1.1。win2008部署WAMP环境可参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》

操作机:kali系统,以远程访问服务器80端口的方式来控制。

服务器与操作机属于同意局域网

2.3 查询已开启的请求类型

(1)打开kali系统终端,以root身份输入命令telnet 172.16.1.1 80,来连接服务。执行过程如下,如果无法连接请查看服务器是否开启telnet服务。

(2)输入以下命令,注意符号应该都是在英文状态下输入。输入后连续按两次回车键。

OPTIONS / HTTP/1.1
HOST:172.16.1.1

(3)在回显内容中,没有看到我们想要的Allow项目的内容,而是出现了X-Powered-by,同时后面显示出网站默认首页的一些其他内容。对此,我们猜测是默认首页的存在对该语句的执行产生了影响。

(4)我们将原来默认首页index.php文件名修改为index1.php,来避免该影响。不知道是不是真的有影响,不过这样子确实能查询到想要的内容。

(5)再次通过telnet发送http请求命令,并按两次回车,回显内容如下,可以看到有Allow项,表示Apache现在已经开启的请求类型,暂时还没有PUT和DELETE。

2.3 开启put方法

(1)开启Dav模块。在服务器上,找到目录 C:\phpStudy\PHPTutorial\Apache\conf(一些旧版本的phpstudy环境下目录是C:\phpStudy\Apache\conf)下的文件httpd.conf。打开该文件,可以以记事本运行或其他编译器运行,将下面两行的注释符去掉,开启这两个模块。

(2)调用DAV模块。在该文件的第230行,新增一行。

(3)开启文件锁。在该文件的第一行新增一行:DavLockDB c:\phpstudy\PHPTutorial\www\DavLock具体路径根据WWW目录所在文件夹路径确定。保存文件并关闭。

(4)在WWW文件夹下,新建文件并命名为DavLock,无需后缀。

(5)重启phpstudy。

(6)在kali系统上再次查询已开启的请求类型。开启了这些就可以实现PUT功能,没有具体将名称显示出来不知道是不是

3 文件上传漏洞利用

3.1 上传PHP探针

(1)先输入命令telnet 172.16.1.1 80连上虚拟机后,前三行代码可以复制,但在输空行及Content-Length: 18时要手打,由于复制空行时可能会多打一些字符。注意,输入空行时的两次回车,不要连按,中间稍微停顿间隔一下。

PUT  /info.php  HTTP/1.1
HOST: 172.16.1.1
Content-Length: 18<?php phpinfo();?>

(2)执行过程如下,可以看到响应号为201,成功上传该文件。

──(root												

【文件上传漏洞-02】利用PUT方法上传文件—以Apache为例相关推荐

  1. web安全之文件上传漏洞攻击与防范方法

    一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ...

  2. DVWA1.9之文件上传漏洞High级多种方法

    前言 文件上传漏洞,通常是由于对上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁灭性的,Apache.Tom ...

  3. 用友GRP-U8 U8AppProxy任意文件上传漏洞复现+利用

    1.漏洞概述 用友GRP-U8R10行政事业财务管理软件是用友公司专注于电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域专业的财务管理软件.用友 GRP-U8 U8AppProx ...

  4. php文件上传漏洞防御,第十二课 php文件上传漏洞和代码防御

    挖掘上传漏洞 常见上传函数 $_FILES  move_uploaded_file等函数 搜索关键字 $_FILES  move_uploaded_file 如何防止上传漏洞 自定义文件扩展名和路径 ...

  5. html5 txt文件上传,JavaScript html5利用FileReader实现上传功能

    本文实例为大家分享了H5利用FileReader上传文件的具体代码,供大家参考,具体内容如下 1. Html部分 文件上传演练 Browse... 2. JS部分 var result = docum ...

  6. Windows上获取文件大小的几种方法及获取文件夹大小方法

    文章来自:https://blog.csdn.net/mfcing/article/details/53184921 获取文件大小 Windows提供了好几个API函数来获取文件大小,还可以使用标准C ...

  7. 服务器迁移上云到新的服务器方法流程(以阿里云为例)

    旧的服务器迁移到阿里云新服务器可以使用服务器迁移中心SMC来实现,原服务器可以是IDC服务器.虚拟机或其他云平台的云服务器,均可以使用阿里云服务器迁移中心SMC来迁移上云到阿里云服务器上,阿里云百科来 ...

  8. web渗透之文件上传漏洞知识总结

    一.文件上传漏洞思路: 第一步: 首先看中间件:因为第一步看中间件就是确定是否存在解析漏洞(学习整理几种解析漏洞的对应版本,有些低版本有解析漏洞,有些高版本就没有.)中间件版本确定了,解析漏洞就确定了 ...

  9. 文件上传漏洞初步解析(个人浅薄理解)

    1.文件上传漏洞原理. 在web网站中会有一些需要用户上传图片或者是压缩包或者是文件之类的功能,在这些功能下用户可以上传文件到网站的后台,但是在有些过滤的文件类型没有做好会导致黑客可以上传木马文件或者 ...

最新文章

  1. 超详细教你10分钟搭建一个高端的B2B2C模式的综合性商城|含来客推V3源码下载
  2. 一份完整的机房建设方案
  3. python处理完数据导入数据库_python 将execl测试数据导入数据库操作
  4. ai作文批改_好未来:AI智能批改中英文作文为老师“减负”
  5. 微服务升级_SpringCloud Alibaba工作笔记0009---阿里云部署微服务_在内网不同机器上_报错_注册中心找不到对应的机器_遇到java.net.UnknownHostExceptio
  6. 滴滴、小米启动造车,特斯拉的护城河还能守多久?
  7. 微宝球型机器人功能_腾讯智能球型机器人专属app(微宝)
  8. 魔兽世界API魔兽世界全局函数
  9. 数字波束形成 工程实现matlab 仿真,数字波束形成算法仿真实现
  10. java开发基础知识学习总结
  11. 微软简体和繁体字体转换
  12. d3d透视逆向篇:第5课:D3D9游戏黑屏优化2 DrawIndexedPrimitive
  13. SDUT 3386 小雷的冰茶几
  14. cairo裁剪使用分析
  15. 对抗网络之PG-GAN,无条件下生成更真实的人脸图像
  16. 文件加解密,AIDE入侵检测,扫描与抓包
  17. mysql 8.0 初识
  18. Docker 启动镜像
  19. IntelliJ IDEA 代码提示快捷键
  20. 关于华为ensp一些报错处理分享及基础命令

热门文章

  1. MATLAB离散卷积的实现_代码编写_实现两列数的卷积
  2. 基于numpy实现离散卷积和CNN
  3. Fifa12游戏中随机退到桌面
  4. 微信小程序微信支付安卓手机可以,苹果手机支付失败。
  5. linux内核带usb驱动,Linux3.4内核USB驱动的移植
  6. 方正计算机驱动程序,方正Founder A321驱动
  7. 数值策划入门指南(一):做数值就是做体验
  8. java将中文Url转换为浏览器识别的编码
  9. 如何学习3DMAX建模放样?
  10. 美国计算机访学,美国天普大学访学印象