LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

利用于ASP文件上传漏洞的0×00截断上传木马

admin
2020年11月30日 15:24 本文热度 3040
这篇文章翻译自:0×00 vs ASP file uploads,原作者是:Brett Moore,SecurityAssessment.公司的,本文写于04年,原文在这里: www.securityassessment./Whitepapers/0×00_vs_ASP_File_Uploads.pdf,我之所以翻译它是由于始终以来我对这个0×00有怀疑,感到有时能用有时又不能用,看了这篇文章,有点清楚了。

说白了一句话:只有form post时有用,而且只针对文件名变量,作用于asp的CreateTextFile等办法。

简介
用ASP写的上传,有个共性的问题:空字节可以被插入到文件名,这样文件名可以被增加任意扩展名,而写入文件的时候,空字节当前的局部都会被疏忽掉。这样,我们就能够绕过一些针对扩展名的校验。
这很相似于Perl/PHP,不同在于这个空字节是怎么上传到ASP程序的。
这种情形产生于:数据在不检查空字节的情况下,比拟、验证后,又直接被传入FileSystemObject时。
本文将探讨Poison空字节攻击如何作用于ASP的上传脚本。

Scope
本文是基于以下两点研讨:upload时的POSTmultipart/formdata、Scripting.FileSystemObject对象。
本文中,咱们集中于CreateTextFile方式,它被用于对文件写入。可能其余的object function也有这样的破绽。
0×00或者空字节在URL或者通常的form post中传送不出去,因为服务器固然会以为这是字符串的成果然而并不会在文件名变量中存储它的值。
而当文件名通过multipart/formdata的方式发送时,空字节将会保存在文件名变量中,这会影响对FileSystemObject的调用。

文件上传
文件上传通常是用输入对象类型file跟编码类型multipart/formdata。
application/xwwwformurlencoded不太合适发送大批的二进制数据或者非ASCII字符,multipart/formdata则比较适合。
一个multipart/formdata信息包含了很多个部分,当form被提交时,数据会被处理成multipart/formdata方式,这会把post的数据进行编码,这些数据中当然也包括空字节。

文件保留
上传成功后,文件会保存在服务器上的一个目录中,下面的代码就是通常的文件上传处置代码:
Sub Save(filename)
Dim objFSO, objFSOFile
pathserver.MapPath("/uploads/")
Set objFSO Server.CreateObject( Scripting.FileSystemObject )
Set objFSOFile objFSO.CreateTextFile(path + filename)
objFSOFile.Write file contents
objFSOFile.Close
End Sub
当文件名参数传到CreateTextFile函数,文件名中可能会包含空字节。这会使得创立的文件名被截断,空字节后被忽略。
Set objFSOFile objFSO.CreateTextFile(path + filename)

该文章在 2020/11/30 15:24:42 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved