IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 文件上传学习:(结合upload-labs 01-12):part01 -> 正文阅读

[PHP知识库]文件上传学习:(结合upload-labs 01-12):part01

写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)

参考文章01

文件上传:js绕过

  • 说明:Web应用系统虽然对用户上传的文件校验是通过前端javascript代码完成的。可以通过对前端javascript进行修改或者是通过抓包软件改动上传的文件,就可以绕过基于js的校验。

upload-labs01

在这里插入图片描述在这里插入图片描述

  • 判断是否存在js校验:
    • 按F12打开调试面板,选择网络,然后上传非图片文件,如果网络中没有数据变化说明存在js漏洞,如果有变化说明不存在。
      在这里插入图片描述
    • 这边选择的是上传一个txt文本
    • 在这里插入图片描述
    • 没有数据变化说明存在js漏洞

绕过方法一:禁用js

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 禁用后可以看到上传的字典上传成功

使用Burp Suite

在这里插入图片描述

  • 写入一句话木马保存,<?php eval($_GET['cmd']); ?>,修改后缀为jpg

在这里插入图片描述

在这里插入图片描述

  • 将文件格式改成php文件,发包

在这里插入图片描述在这里插入图片描述

  • 结果如上
  • 去根目录下看看

在这里插入图片描述

  • 成功上传
  • get it

文件上传:mime绕过

  • 说明:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
  • 绕过原理:部分Web应用系统判定文件类型是通过content-type字段,黑客可以通过抓包,将content-type字段改为常见的图片类型,如image/gif,从而绕过校验。
  • 常见几种MIME类型:
    text/plain(纯文本)
    text/html(HTML文档)
    text/javascript(js代码)
    application/xhtml+xml(XHTML文档)
    image/gif(GIF图像)
    image/jpeg(JPEG图像)
    image/png(PNG图像)
    video/mpeg(MPEG动画)
    application/octet-stream(二进制数据)
    application/pdf(PDF文档)

upload-labs02

在这里插入图片描述
在这里插入图片描述

  • 事先php文件
  • 上传php然后抓包
    在这里插入图片描述
  • 修改content-type字段,改为常见的图片类型,image/gif,然后发包
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 成功
  • get it

文件上传:黑名单限制

upload-labs03

在这里插入图片描述

  • 发现源码中对扩展名进行了黑名单限制,所限制的文件类型不全,可用.php5 .php4 .php3 .phtml .phpt类型扩展名绕过。
  • 更改后缀名
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述

  • 可以确定上传成功了
  • get it

upload-labs05

在这里插入图片描述

  • 可以看到基本上和php相关的内容都被限制上传了

  • 查看源码发现缺少了大小写转换那一步骤
    在这里插入图片描述

在这里插入图片描述

  • 翻译翻译就是,大写的PHP不再黑名单里
  • 所以
    在这里插入图片描述
    在这里插入图片描述
  • get it

upload-labs06

在这里插入图片描述

  • 依旧不当人
  • 查看源码发现未对末尾空格进行处理
    在这里插入图片描述

在这里插入图片描述

  • 翻译翻译,在后缀后面加一个空格就好了
    在这里插入图片描述
  • 这里还是需要抓包改包
    在这里插入图片描述

在这里插入图片描述

  • get it

upload-labs07

在这里插入图片描述

  • 依旧不当人
  • 查看源码发现漏掉了后缀后面的点

在这里插入图片描述

在这里插入图片描述

  • 翻译翻译:在后缀后面加个点然后上传就行了
    在这里插入图片描述在这里插入图片描述
  • get it

upload-labs08

在这里插入图片描述

  • 总的来说做个人很困难
  • 查看源码
    在这里插入图片描述
  • 发现少了点什么: ::$DATA

在这里插入图片描述

  • 翻译翻译,就是在.php后面添加这个后缀::$DATA
    在这里插入图片描述
    在这里插入图片描述
  • 在访问的时候需要去除 ::$DATA
  • 不然会出现403
  • get it

upload-labs09

在这里插入图片描述

  • 这个情况有点离谱
  • 看看源码
    在这里插入图片描述
  • 代码先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用.php. .(点+空格+点)来绕过

在这里插入图片描述
在这里插入图片描述

  • get it

upload-labs10

在这里插入图片描述

  • 可以看到是在文件名中去除这些后缀
  • 查看源码
  • 发现在去除完之后貌似不存在二次检测
  • 那就构造.pphphp后缀
    在这里插入图片描述
  • get it

文件上传: 截断漏洞

upload-labs11

在这里插入图片描述

  • 首先限定了后缀
  • 但是离谱的是路径可更改
  • 这波不是白给吗

在这里插入图片描述

  • 这里的路径是保存的路径
  • 所以需要把php文件后缀改成图片然后更改保存路径从而再次改回php
  • 然后还需要在路径后面添加%00
  • 关于%00
  • 为什么修改path才可以?
    - 因为程序中检测的是文件的后缀名,如果后缀合法则拼接路径和文件名。
    - 那么,攻击者修改了path以后的拼接结果为:uploads/aaa.php%00/20190818.php
    - 移动文件的时候会将文件保存为:uploads/aaa.php
    - 从而达到Getshell效果。
    在这里插入图片描述

upload-labs12

  • 后续由于php版本限制这两关的漏洞貌似无法直接使用
  • 放上另一位博主成功的示例

https://blog.csdn.net/u014029795/article/details/102889924

文件上传:.htaccess文件解析漏洞

  • .htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
<IfModule mime_module>
AddHandler php5-script .gif          #在当前目录下,只针对gif文件会解析成Php代码执行
SetHandler application/x-httpd-php    #在当前目录下,所有文件都会被解析成php代码执行
</IfModule>
<FilesMatch "evil.gif">
SetHandler application/x-httpd-php   #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行
AddHandler php5-script .gif          #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行
</FilesMatch>
<IfModule mime_module>
AddType application/x-httpd-php .gif#在当前目录下,只针对gif文件会解析成Php代码执行
</IfModule>

upload-labs04

在这里插入图片描述

  • 多多少少有点不当人
  • 决定通过上传.htaccess文件来达到目的
<FilesMatch "test.gif">
SetHandler application/x-httpd-php   
AddHandler php5-script .gif         
</FilesMatch>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 结果上是成功的
  • 说明test.gif被php解析了
  • get it
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:32:11  更:2021-08-16 11:33:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 15:52:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码