从代码层面理解java的00截断漏洞

admin 2021年4月2日20:38:36评论277 views字数 1183阅读3分56秒阅读模式

我们一般研究00截断,基本都是使用php来写的漏洞demo。所以都知道php下的00截断是和move_upload_file()这个函数有关,和这个漏洞相关的CVE有两个(CVE-2006-7243和CVE-2015-2348 )。但搜索了网上的资料,发现对java的00截断的研究文章甚少。 完全搞不清在java中这个漏洞是和系统,中间件,jdk,还是代码有关?如果是代码问题,那是某个函数存在漏洞呢,还是代码逻辑问题?

一、实验编码

在系统c盘根目录新建两个文件,分别如下:

1.1 test.jsp

1
this is test.jsp

1.2 test.txt

1
this is test.txt

1.3 测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URLDecoder;

public class T1 {
public static void main(String[] args) {
String path = "c://test.jsp"+URLDecoder.decode("%00")+"test.txt";
System.out.println("filename:" + path);
File file = new File(path);
System.out.print("content:");
try {
FileInputStream fis = new FileInputStream(file);
int b;
while((b = fis.read()) != -1){
System.out.print((char)b);
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

二、测试结果

jdk1.6.0

jdk1.7.0

jdk1.7.08(最新的1.7版本)

三、总结

目前的结论:java的00截断和jdk版本有关。漏洞更深层次的原理,我会在代码审计完,进行更细致的研究,到时候更新文章。最后感谢公司背影表哥的指点。

文章来源于gv7.me:从代码层面理解java的00截断漏洞

相关推荐: XSS中的JS转义和HTML转义

今天在给客户做渗透测试时,遇到了一处XSS。虽然很简单,但有点小意思。引发了我对js转义和html转义在XSS中的思考,故做个小笔记记录一下。两个例子都会以仿写现实场景的代码的说明问题。 0x01 一点知识贮备 1.1 关于转义 **;格式的字符串是html的…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月2日20:38:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从代码层面理解java的00截断漏洞http://cn-sec.com/archives/318067.html

发表评论

匿名网友 填写信息