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知识库 -> 2021-08-22 网安实验-文件上传渗透测试之绕过白名单检查实现文件上传 -> 正文阅读

[PHP知识库]2021-08-22 网安实验-文件上传渗透测试之绕过白名单检查实现文件上传

实验步骤一

任务描述:通过修改MIME类型,使其符合$_FILES[‘upload_file’][‘type’]的白名单,达到上传恶意文件的目的。

  1. 在桌面写一个简单的一句话木马eval.php:

在这里插入图片描述
2. 在实验机内打开浏览器访问http://10.1.1.100/upload-labs/index.php,查看源码可以发现是白名单判断,只允许上传$_FILES[‘upload_file’][‘type’]为’image/jpeg’、'image/png’及’image/gif’的文件。
3. 上传eval.php并用burpsuite抓包:
在这里插入图片描述
此时的MIME类型为application/octet-stream

  1. 修改Content-Type为image/gif,点击‘go’之后在Response处查看响应内容:在这里插入图片描述

实验步骤二

任务描述: i m g p a t h 直 接 拼 接 , 利 用 可 以 看 到 是 白 名 单 判 断 , 但 是 img_path直接拼接,利用%00截断进行绕过,上传恶意文件并通过浏览器连接webshell。 可以看到是白名单判断,但是 imgp?athimg_path直接对上传的文件名拼接,使用$_GET传参,我们可以利用%00截断进行绕过。

注:%00截断的条件:

1)PHP版本小于5.3.4;
2)打开PHP的配置文件php-ini,将magic_quotes_gpc设置为Off。
2. 桌面写一个test.jpg文件:在这里插入图片描述
3. Windows中修改PHP配置文件php.ini:在这里插入图片描述
保存后重启phpStudy。

  1. 上传test.jpg并使用burpsuite抓包,save_path改为…/upload/test.php%00:在这里插入图片描述
  2. 点击‘go’之后查看响应内容,最后保存下来的文件会是test.php:在这里插入图片描述

实验步骤三

任务描述:0x00截断绕过,利用burpsuite的hex功能将save_path改成…/upload/test.php[二进制00]形式,上传恶意文件并通过菜刀浏览器连接webshell。

  1. 通过源码提示进行文件上传:在这里插入图片描述
    'save_path’是通过post传进来的,需要在二进制文件中进行修改,因为post不会像get那样对%00进行自动解码。
  2. 上传test.jpg并使用burpsuite抓包,利用burpsuite的hex功能将save_path改成…/upload/test.php[二进制00]形式:在这里插入图片描述
    在…/upload/后添加test.php (.php后面加空格),filename不用修改,然后点击‘Hex’:在这里插入图片描述
    0x0a是十六进制表示方法,表示ASCII码为/n的换行字符,具体为换行至下一行行首起始位置;而0x0d表示ASCII码为/r的回车字符,回车的作用只是移动光标至该行的起始位置。
  3. 将0d前面的20改为00,然后点击‘go’查看响应内容:在这里插入图片描述

实验步骤四

任务描述:本关考察CVE-2015-2348,move_uploaded_file() 00截断,上传webshell同时自定义保存名称,上传成功后用菜刀连接。

  1. 点击右上方‘显示源码’,根据源码提示进行文件上传:
    在这里插入图片描述
    发现move_uploaded_file()函数中的$img_path是由post参数save_name控制的,可以在save_name中利用00截断进行绕过。

  2. 上传test.jpg并使用burpsuite抓包:在这里插入图片描述
    保存名称修改为‘test.php+空格.1.jpg’,点击‘上传’;

  3. 在‘Hex’中将20(表示php后的那个空格)改为00,然后点击‘go’查看响应内容:在这里插入图片描述
    在这里插入图片描述
    最终上传的是test.php文件。

  4. 通过菜刀连接webshell:

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:19:43  更:2021-08-24 15:20:09 
 
开发: 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/19 21:50:43-

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