00截断上传绕过_小谈截断上传漏洞

0x00 前言

小菜今天在测试网站的时候,发现存在上传点,于是尝试各种姿势,环境为iis7.5,于是乎来一个解析漏洞,发现并不可以,最终百度乎,发现上传有很多种利用方法,所以小菜就去学习了一下截断上传,搜集了很多资料,做一下总结,大牛完全可以飘过,基础文章。

0x01  截断原理

首先科普一下,网上说的介绍都有神马0x00,%00,/00之类的截断,看的小菜我晕乎乎的,其实看完才知道,原来都是一样的,只是不同表示而已,截断的核心在于chr(0)这个字符,这个函数表示返回以数值表达式值为编码的字符,举个例,print chr(78) 结果是N,所以char(0)表示的ascll字符是null,当程序输出包含chr(0)变量时,chr(0)后面的数据会被截断,后面的数据直接忽略,导致漏洞产生。

0x02  0x00截断我先把网上盛行的集中上传截断各自举个例,然后到最后总结一下阶段的核心,首先是0x00截断,00截断是将上传文件名或路径名中使用ascll码值为0的字符(也就是null)来进行截断,%00一般用在URL中用于截断url来进行文件包含,两者原理都一样,都是ascll为0的字符,只是形式不同而已。   (1)用burp工具来截断,设置代理,然后抓包,我们要修改的地方我已标注

(2)在/Upload/后面加一个空格,点开hex,将其对应的20改成00即可,就可以绕过后缀名的过滤,从而得到webshell

0x03 %00截断我就不过多赘述了,前面原理也都讲的差不多,直接上方法,将文件名后面直接加上%00.jpg,先绕过后缀上传,然后利用burp的urldecode功能,其实和/00截断将hex20变成00一样,效果一样,两种方法都可以拿webshell

0x04  总结

上面两种其实是一个原理,下面我们就其原理总结倒腾一下,明白了原理也就发现,截断上传也不是很难,下面我们就进入正轨,最开始我也说了,截断上传的核心在chr(0)(即null)的利用。

我们可以写个代码验证一下,在网上找到了一个浅显易懂的代码,下面我们看代码

path="upfiles/picture/"

file="XXX.jpg"

upfilename=path & file '最后的上传地址

%>

大家应该能清楚的看懂这个意思,path为上传的路径,file是生成的文件名,而upfilename则是最终上传后路径,试想一下,如果path是用户可以控制的,那么截断漏洞就产生了。比如我更改的path为upfiles/picture/1.aspchr(0)&XXX.jpg,chr(0)会忽略后面的东西,看看,upfiles/picture/1.asp,很熟悉吧一个webshell就这样诞生了。

0x05   后记

关于截断我就写这么多了,基本上例子和原理也都涵盖到了,希望能对某些不理解截断的人一点儿帮助,其实我还是想说,凡事还是得靠实践,实践才能出真知啊,知道原理了,就要去实践,多多实战就会更加理解,不然就会忘了,以后还得继续学,如果有什么错误还请大牛指点。

资料汇总:http://www.jinglingshu.org/?p=1339

https://www.91ri.org/2404.html

http://tieba.baidu.com/p/2158985760

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用keytool查看Android APK签名

文章目录 一、找到JDK位置二、使用方法2.1 打开windows命令行工具2.2 查看签名 三、如何给APK做系统签名呢? 一、找到JDK位置 安卓AS之后,可选择继续安装JDK,如本文使用amazon版本默认位置:C:\Users\66176.jdks\corretto-1.8.0_342可通过自…

exchange服务器维护模式命令,Exchange服务器系列课程之七--维护邮件服务器(二)

继续上次的讨论,上次讨论了邮件服务器的一些监控和排错手段,今天我们继续来讨论邮件服务器的维护。今天主要来讨论一下邮件服务器的备份与还原。为什么要备份我就不多说了,备份的方法也非常简单,通过备份工具直接备份就可以了。这…

任务管理器在右下角的图标不显示

任务管理器在右下角的图标不显示 2012年11月7日18:22:23 症状如下图所示,不管是打开任务管理器还是最小化它,右下角均没有它的图标。 网上查到的说法均不靠谱。后来我CtrlAltDel调出任务管理器,找到任务管理器对应进程“taskmgr.exe”&#x…

总结 一下UML 类图的关系

1,实线三角 表示 泛化 是一种继承关系,它指定了子类如何特化父类的所有特征和行为 2,虚线三角 表示 实现 是一种类与接口的关系,表示类是接口所有特征和行为的实现 3,空心菱形 表示 聚合 是整体与部分的关系 4, 实心…

MAUI中构建跨平台原生控件实现

简介MAUI中使用Handler体系来处理不同平台的原生控件实现, 即对应的, 如果我们想要创建控件, 只需要创建基于不同平台的Handler即可。那么下面主要教大家如何通过创建Handler(事件处理程序)来构建自己的控件。开始下面, 将通过创建一个进度条控件案例, 来演示如何在MAUI项目中创…

Android之android studio如何获取证书指纹 (SHA1)

android studio如何获取证书指纹 (SHA1) 为什么要用SHA1 我们做百度地图或是高德地图的时候。注册app信息要求填写数字签名 我们可以通过外部命令行获取,也可以通过eclipse获取 ,现在主流是android studio下面是通过Android studio获取的方法 第一步&am…

排位重要还是媳妇儿重要?

1 刚打到的车(素材来源网络,侵删)▼2 还是排位要紧(素材来源网络,侵删)▼3 大叔为求省事在家自行焚烧床垫▼4 好家伙,这回答直呼:想不到吧!(素材来源网络&…

新天龙八部服务器维护了吗,《新天龙八部》3月11日全服更新维护公告

亲爱的玩家,大家好:为保证游戏运行的稳定性,提升整体服务质量,《新天龙八部》游戏全部服务器(除测试服务器外)将于2021年3月11日7:00—9:00进行更新维护,维护后版本号升级为3.67.9108。如果在预…

锁屏快捷键_全面屏 iPhone 锁屏快捷键美化,让你的 iPhone 更特别

苹果从iPhone X以后的手机都是全面屏(即刘海屏),在你的全面屏手机锁屏状态在,屏幕下方有两个快捷按钮,左边的是「手电筒」,右边的是「相机」,在锁屏状态下这两个功能是圆形的,今天堂堂分享一个无需越狱即可…

URLEncode编码和URLDecode解码

1 String text1 java.net.URLEncoder.encode("中国" ,"utf-8" ); 2 String text2 java.net.URLDecoder.decode(text1,"utf-8"); (1).URLEncoder需要注意:这个方法编码了符号,“\” ,“&”,“”,和“&#xff1…

MAUI 移植 Xamarin.Forms 自定义渲染器

简介众所周知, .NET MAUI使用的是Handler处理程序, 而Xamarin使用的则是Render渲染器模式。尽管MAUI中使用了新的渲染模式, 但是仍然Xamarin中的支持Render渲染器, 这意味着如果你的项目是从Xamarin移植到MAUI当中, 大部分代码能够可以重用, 本篇文章介绍如何将Xamarin 渲染器(…

当下流行的分布式文件系统大阅兵

本文对目前数种分布式文件系统进行简单的介绍。当前比较流行的分布式文件系统包括:Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、以及GoogleFS。Lustre(www.lustre.org)lustre是一个大规模的、安全可靠的&…

栈和队列之LinekedList(双端队列)

介绍: ( deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 双端队列是限定插入和删除操作在表的两端进行的线性表。这两端分别称做端点1和端点2(如下图(a)所示)。也可像栈一样,…

python全局变量操作详解_Python全局变量操作详解

接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走。今天遇到了Python中的全局变量的相关操作,遇到了问题,所以…

酒桌上,领导将酒泼到你脸上......

1 哈尔滨的冬天能有多冷(素材来源网络,侵删)▼2 复刻经典(素材来源网络,侵删)▼3 从泥浆里出来的老虎▼4 让你再吵!(素材来源网络,侵删)▼5 酒桌上&#…

机房网络服务器维修图片,机房机柜尾纤布线图片 机房布线维护整理

原标题:机房机柜尾纤布线图片 机房布线维护整理评价一个工人的机柜布线水平,总的来说还是主要看他打标签的熟练度、重视度、清晰度、整洁度。工具:理线夹,理线器,理线架,桥架固定器,线卡&#x…

在宽字节环境下获取EditBox中的CString转换为char[]

2019独角兽企业重金招聘Python工程师标准>>> 用多字节编码的话可以试试这个 char temp[4]; CString str _T("23"); char* pchar str.GetBuffer(0); strcpy(temp,pchar); 如果是unicode编码的话,用这个 char temp[4]; CString str _T("23"…

Rider 2021.3 Beta 现已推出

Rider 2021.3 是今年的最后一个版本, 现在已经推出了 Beta 版, 你现在可以在 jetbrains 官网下载,这个版本也是免费使用的, 不需要许可证,以下是本次更新的主要内容:1. 支持 .NET 6 SDK, 包括 Hot Reload。2. 完全重新设计的主工具栏3. 调…

eclipse各种配置

2019独角兽企业重金招聘Python工程师标准>>> * eclipse配置tomcat运行内存,在配置后追加: -Xmx512m -XX:PermSize256m * eclipse自身内存配置,eclipse.ini文件追加: -Xms512m -Xmx1024m -XX:PermSize512M -XX:MaxPerm…

Android之如何设置背景的透明度

半透明<Button android:background"#e0000000" ... /> 透明<Button android:background"#00000000" ... /> 颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255&#xff08;00 到 ff&#xff09;。对于 alpha…