渗透测试-百日筑基—文件上传篇特征截断渲染%00绕过——下篇

目录

day10-渗透测试文件上传篇&绕过&特征&截断&渲染

一、黑名单大小写绕过代码分析

1、获取文件后缀名进行判断,如果后缀在这个字典里就禁止上传。

2、黑名单大小写绕过攻击

二、利用 windows 系统特征绕过上传

1、windows 系统特征绕过漏洞分析源码

2、windows 系统特征绕过攻击

三、NTFS 交换数据流::$DATA 绕过上传

1、NTFS 交换数据流::$DATA 代码分析

2、NTFS 交换数据流::$DATA 攻击绕过上传

四、利用 windows 环境的叠加特征绕过上传

1、黑名单源码分析

2、利用 windows 环境的叠加特征绕过上传攻击

3、双写后缀名绕过上传

五、文件上传双写绕过攻击

六、目录可控%00 截断绕过上传

1、上传参数目录可控代码分析

2、文件上传参数目录可控攻击

七、目录可控 POST 绕过上传

1、目录可控 post 上传代码分析

2、目录可控上传攻击

八、文件头检测绕过上传

1、常见的文件头

2、文件头检测上传代码分析

3、文件头检测绕过传攻击方法

九、绕过图片二次渲染上传

1、图片二次渲染分析代码

2、绕过图片二次渲染攻击

3、制作图片马

声明:请勿进行违法测试,任何教学出处与本博主无关


day10-渗透测试文件上传篇&特征&截断&渲染&%00&绕过

描述

    文件上传漏洞是一种常见的网络安全问题,它存在于许多Web应用程序中。当Web应用程序在处理用户上传的文件时,如果缺乏严格的安全检查和处理,攻击者就可能上传并执行恶意文件,从而对系统安全构成严重威胁。这种漏洞可能源于对上传文件的类型、大小、内容等属性的检查不严格,或对上传文件的保存路径、文件名等信息处理不当,以及未限制用户访问上传文件的权限, 如常见的头像上传,图片上传,oa 办公文件上传,媒体上传,允许用户上传文件,如果过滤不严格,恶意用户利用文件上传漏洞,上传有害的可以执行脚本文件到服务器中,可以获取服务器的权限,或进一步危害服务器。

一、黑名单大小写绕过代码分析

1、获取文件后缀名进行判断,如果后缀在这个字典里就禁止上传。

$deny_ext =array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",". pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx", ".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

2、黑名单大小写绕过攻击

仔细阅读黑名单,查看是否有被忽略的后缀名,当前可以使用phP 绕过

二、利用 windows 系统特征绕过上传

    在 windows 中文件后缀名. 系统会自动忽略.所以 shell.php. 像shell.php 的效果一样。所以可以在文件名后面机上.绕过。

1、windows 系统特征绕过漏洞分析源码

同样是黑名单禁止上传,但是可以上传.php.这种文件后缀

2、windows 系统特征绕过攻击

抓包修改在后缀名后加上.即可绕过

三、NTFS 交换数据流::$DATA 绕过上传

如果后缀名没有对::$DATA 进行判断,利用 windows 系统NTFS 特征可以绕过上传。

1、NTFS 交换数据流::$DATA 代码分析

$deny_ext =array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",". pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx", ".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

同样用黑名单过滤后缀名。但是程序中没有对::$DATA 进行过滤可以添加::$DATA 绕过上传。

2、NTFS 交换数据流::$DATA 攻击绕过上传

burpsuite 抓包,修改后缀名为 php::$DATA

四、利用 windows 环境的叠加特征绕过上传

    在 windwos 中如果上传文件名 moonsec.php:.jpg 的时候,会在目录下生产空白的文件名 moonsec.php,再利用 php 和 windows 环境的叠加属性, 以下符号在正则匹配时相等

双引号" 等于 点号.

大于符号> 等于 问号?

小于符号< 等于 星号*

文件名.<或文件名.<<<或文件名.>>>或文件名.>><空文件名

 

1、黑名单源码分析

同样是黑名单匹配,把.去掉 把空格也过滤了。::$data 也过滤了

2、利用 windows 环境的叠加特征绕过上传攻击

首先抓包上传 a.php:.php 上传会在目录里生成 a.php 空白文件,接着再次提交把a.php 改成 a.>>>

3、双写后缀名绕过上传

在上传模块,有的代码会把黑名单的后缀名替换成空,例如a.php 会把php 替换成空,但是可以使用双写绕过例如 asaspp,pphphp,即可绕过上传

文件上传双写绕过漏洞分析

同样是黑名单过滤。str_ireplace 对上传的后缀名是黑名单内的字符串转换成空

五、文件上传双写绕过攻击

抓包上传,把后缀名改成 pphphp 即可绕过上传

六、目录可控%00 截断绕过上传

以上都是一些黑名单被绕过的,如果黑名单上传检测后,没有限定后缀名,绕过的方法很多,与黑名单相对的就是白名单,使用白名单验证会相对比较安全,因为只允许指定的文件后缀名。但是如果有可控的参数目录,也存在被绕过的风险。

1、上传参数目录可控代码分析

    使用白名单限制上传的文件后缀名,只允许指定的图片格式。但是$_GET['save_path']服务器接受客户端的值,这个值可被客户端修改。所以会留下安全问题。

2、文件上传参数目录可控攻击

上传参数可控当 gpc 关闭的情况下,可以用%00 对目录或者文件名进行截断。

php 版本小于 5.3.4  首先截断攻击,抓包上传将%00 自动截断后门内容。

例如 1.php%00.1.jpg 变成 1.php

七、目录可控 POST 绕过上传

    上面是 GET 请求的,可以直接在 url 输入%00 即可截断,但是在post 下直接注入%00 是不行的,需要把%00 解码变成空白符,截断才有效。才能把目录截断成文件名。

1、目录可控 post 上传代码分析

这段代码同样是白名单限制后缀名,$_POST['save_path']是接收客户端提交的值,客户端可任意修改。所以会产生安全漏洞。

2、目录可控上传攻击

    文件名可控,通过抓包修改可控的参数,与不同的中间件的缺陷配合使用

使用%00 截断文件名 再 post 环境下%00 要经过 decode 但是受gpc 限制使用 burpsutie POST %00 截断文件名

八、文件头检测绕过上传

    有的文件上传,上传时候会检测头文件,不同的文件,头文件也不尽相同。常见的文件上传图片头检测 它检测图片是两个字节的长度,如果不是图片的格式,会禁止上传。

1、常见的文件头

JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

2、文件头检测上传代码分析

这个是存在文件头检测的上传,getReailFileType 是检测jpg、png、gif 的文件头

如果上传的文件符合数字即可通过检测

3、文件头检测绕过传攻击方法

制作图片一句话,使用 copy 1.gif/b+moon.php shell.php 将php 文件附加再jpg图片上,直接上传即可。

本例子因为限制了后缀为 jpg,可以考虑文件包含将图片文件包含进去getshell

九、绕过图片二次渲染上传

    有些图片上传,会对上传的图片进行二次渲染后在保存,体积可能会更小,图片会模糊一些,但是符合网站的需求。例如新闻图片封面等可能需要二次渲染,因为原图片占用的体积更大。访问的人数太多时候会占用,很大带宽。二次渲染后的图片内容会减少,如果里面包含后门代码,可能会被省略。导致上传的图片马,恶意代码被清除。

1、图片二次渲染分析代码

    只允许上传 JPG PNG gif 在源码中使用 imagecreatefromgif 函数对图片进行二次生成。生成的图片保存在,upload 目录下

2、绕过图片二次渲染攻击

    首先判断图片是否允许上传 gif,gif 图片在二次渲染后,与原图片差别不会太大。所以二次渲染攻击最好用 git 图片马

3、制作图片马

将原图片上传,下载渲染后的图片进行对比,找相同处,覆盖字符串,填写一句话后门,或者恶意指令。

声明:请勿进行违法测试,任何教学出处与本博主无关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904698.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YoloV9改进策略:Block改进|RFE模块,提高小物体的识别精度|即插即用|代码+修改过程

摘要 论文介绍 本文介绍了一种基于YOLOv5的人脸检测方法,命名为YOLO-FaceV2。该方法旨在解决人脸检测中的尺度变化、简单与困难样本不平衡以及人脸遮挡等问题。通过引入一系列创新模块和损失函数,YOLO-FaceV2在WiderFace数据集上取得了优异的表现,特别是在小物体、遮挡和困…

CodeQL学习笔记(3)-QL语法(模块、变量、表达式、公式和注解)

最近在学习CodeQL&#xff0c;对于CodeQL就不介绍了&#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记&#xff0c;根据个人知识库笔记修改整理而来的&#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类&#xff0c;至少与目前主流的这些OOP语言相比&…

QT-使用QSS美化UI界面

一、QSS简介&#xff1a; Qt Style Sheet&#xff1a;Qt样式表&#xff0c;用来自定义控件外观的一种机制&#xff0c;可以把他类比成CSS&#xff08;CSS主要功能与最终目的都是能使界面的表现与界面的元素分离&#xff09;。QSS机制使应用程序也能像web界面那样随意地改变外观…

江协科技STM32学习- P23 DMA 直接存储器存取

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

Adb命令大全

本文列举了几乎所有的adb命令&#xff0c;方便Android学习者或者开发工程师在日常学习开发过程中查询使用。建议收藏。 Adb Server adb kill-server adb start-server 重启 adb reboot adb reboot recovery adb reboot-bootloader adb root //restarts adb with root permis…

信息安全保障人员CISAW认证有哪些级别和方向?

在信息安全领域&#xff0c;CISAW认证已经成为了一个重要的资格认证标准。 它不仅代表了专业技术水平的认可&#xff0c;也是进入该领域工作和发展的重要凭证。 对于有志于从事信息安全相关工作的人员来说&#xff0c;了解其报考条件是迈向成功的第一步。 CISAW认证体系涵盖…

微信小程序中点击搜素按钮没有反应,可能是样式问题(按钮被其他元素覆盖或遮挡)

文章目录 1. 确认 bindtap 绑定在正确的元素上2. 检查是否有遮挡或重叠元素3. 检查 this 上下文绑定问题4. 清除微信小程序开发者工具的缓存5. 用微信开发者工具查看事件绑定6. 确保 handleSearch 没有拼写错误进一步调试 1、searchResults.wxml2、searchResults.wxss3、search…

Git获取本地仓库和常用指令

一、获取本地仓库 1&#xff09;在电脑的任意位置创建一个空目录&#xff08;例如test01&#xff09;作为我们的本地Git仓库 2&#xff09;进入这个目录中&#xff0c;点击右键打开Git bash窗口 3&#xff09;执行命令git init&#xff08;初始化当前目录为一个git仓库&…

两个好用的GIF制作软件,轻松制作动图表情包

分享2个好用的GIF制作软件&#xff0c;支持GIF录制、视频转GIF、图片合成GIF&#xff0c;可以满足绝大部分的GIF制作需求&#xff01; 1、ScreenToGif&#xff1a;GIF录制/视频转GIF 一款特别好用的GIF录制和编辑工具&#xff0c;界面简单易用。安装后一打开就能看到它的四大…

RN安卓应用打包指南

React Native&#xff08;简称RN&#xff09;是一个用于开发跨平台移动应用的开源框架&#xff0c;它允许你使用JavaScript和React来构建在iOS和Android上运行的应用。要将React Native项目打包成安卓应用&#xff08;APK&#xff09;&#xff0c;可以按照以下步骤进行&#xf…

【生物学&水族馆】金鱼成体幼苗检测活体识别系统源码&数据集全套:改进yolo11-Parc

改进yolo11-DynamicHGNetV2等200全套创新点大全&#xff1a;金鱼成体幼苗检测活体识别系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.30 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展…

【商汤科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

node和npm版本冲突

问题描述&#xff1a; 解决办法&#xff1a; 一、 查看自己当前的node和npm版本 node -v npm -v 二、 登录node官网地址 node官网地址 https://nodejs.org/zh-cn/about/previous-releases 查看与自己node版本兼容的是哪一版本的npm,相对应进行更新即可。 三 升级node 下载最…

python 爬虫 入门 五、抓取图片、视频

目录 一、图片、音频 二、下载视频&#xff1a; 一、图片、音频 抓取图片的手法在上一篇python 爬虫 入门 四、线程&#xff0c;进程&#xff0c;协程-CSDN博客里面其实有&#xff0c;就是文章中的图片部分&#xff0c;在那一篇文章&#xff0c;初始代码的28&#xff0c;29行…

服务器的免密登录和文件传输

在天文学研究中&#xff0c;通常会采用ssh登录服务器&#xff0c;把复杂的计算交给服务器&#xff0c;但是如果你没有进行额外的配置&#xff0c;那么登录服务器&#xff0c;以及和服务器进行文件传输&#xff0c;每次都要输入账号和密码&#xff0c;比较不方便&#xff0c;Win…

前端八股文第二篇

11.事件循环 事件循环&#xff08;Event Loop&#xff09;是 JavaScript 运行时中的一种机制&#xff0c;用于处理异步操作和事件驱动的编程。在浏览器环境中&#xff0c;事件循环是指浏览器通过事件队列&#xff08;Event Queue&#xff09;来管理和调度异步任务的执行顺序。…

VBox增强功能、VBoxLinuxAdditions安装、共享文件夹问题解决

VBox增强功能、VBoxLinuxAdditions安装、共享文件夹问题解决 文章目录 VBox增强功能、VBoxLinuxAdditions安装、共享文件夹问题解决1.VBoxLinuxAdditions.run&#xff1a;找不到命令解决方案 2.可以看到共享文件夹。但是不能看到里面的内容。解决方案 参考 共享文件夹设置&…

【计算机网络 - 基础问题】每日 3 题(五十八)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

AT系列之74HC595级联数码管

记录我学习例程,学习用做企业级的使用的逻辑,欢迎讨论指正。 首先了解AT系列芯片原理,32位单片机,模仿stm32各个系列的,我这边学习使用AT32F421系列的芯片。其实系统学过stm32都可很快上手。下面这个是雅特力官方网址,各种资料都可以免费下载学习。 雅特力科技 : 32位微…

算法:排序

排序算法 1. 简单排序1.1 直接插入排序1.2 冒泡排序1.3 简单选择排序 2. 希尔排序3. 快速排序4. 堆排序5. 归并排序 将文件的内容按照某种规则进行排列。 排序算法的稳定判定&#xff1a;若在待排序的一个序列中&#xff0c; R i R_i Ri​和 R j R_j Rj​的关键码相同&#xf…