asp中null字符截断
来源:互联网 发布:网络不良信息的危害有 编辑:程序博客网 时间:2024/05/24 05:51
在asp中,字符串中是允许存在null字符的,但是许多asp的文件上传系统中,当文件名中含有null字符时,会导致null字符后面的数据被忽略。简单的说,如果有一个asp的文件操作函数create_file(),传递参数a.jpg,那么会产生一个a.jpg的文件。
可是,如果传递一个带有null字符的参数呢?看下面的例子:
这样,因为null字符后面的数据都被丢弃,调用函数时,则会产生一个nc.exe文件。
web服务器在处理上传的文件时,通常都会对文件的格式做限制,最简单的方法就是对文件后缀名做判断,但是这种简单的校验方式,利用null就可以很容易的绕过。如上传一个nc.exe文件时,通过代理软件抓包,手动把文件名改为上面图片中的格式,那么asp获取到的文件后缀名为.BMP,但是真正传递给文件操作对象后,很有可能最后产生了一个nc.exe文件。如下图:
null字符截断问题,通常出现于asp上传文件的功能中,而且据说只适用于multipart/form-data方式(这个未经验证过)。get和post方式提交变量时,如果变量名中含有%00或null,那么这个变量会被自动截断,即最终获取到的变量value是null之前的部分。所以想利用这个特性来处理get和post的变量也是不太可能的。另外,目前自己亲测过的,ActiveXObject("Scripting.FileSystemObject")对象在操作文件时,null后面的字符会被忽略,也就是可以利用这个漏洞。如果使用CreateObject("Persits.Upload")这个对象,那么在保存文件时,会产生错误,改漏洞不能在这个对象上被利用。
个人针对这个问题,比较通俗的但是不一定正确的理解是,操作系统的文件名中,就是以null结尾的,所以在创建文件的时候,操作系统的文件系统会自动将null后面的数据丢掉。
全文主要参考了这篇文章:http://www.security-assessment.com/files/documents/whitepapers/0x00%20vs%20ASP%20file%20upload%20scripts.pdf
- asp中null字符截断
- asp request0x00字符截断与利用
- js字符中'null' 和null
- PHP截断中文字符
- PHP中文字符截断
- MySQL 字符截断攻击
- asp.net中GridView里字符串的截断
- asp中URL传参遇空格字符串被截断
- asp截断部分内容问题
- Asp.Net 读取Excel内容超过255个字符被截断
- bat-任意截断替换字符
- TextBlock截断字符显示为....
- DataGrid 支持字符截断显示
- JAVA字符截断保留尾部
- swift截断String末尾字符
- 1.Shapefile字符截断问题
- 限定字符长度,截断中文字符
- ASP过长标题如何截断
- shell--数据库备份脚本
- shell--检查apache是否启动
- Druid源码
- ASUS路由器支持锐捷设置
- FreeRTOS学习8--低功耗tickless
- asp中null字符截断
- Win7系统登录游戏界面提示错误代码script error的原因及解决方法图文教程
- 用符号执行技术搞定crackme
- js.判断一个数是否是水仙花数
- Redis入门介绍
- [转载]细说"回车"和"换行"的故事
- 高级控件
- 有道词典案例
- Pulltorefresh