Java--sec-code 目录遍历&文件上传
任意文件读取
漏洞url在:
http://localhost:7869/path_traversal/vul?filepath=e:/flag.txt
可以直接访问到flag文件

来看看vul此处的代码
这里是调用getImgBase64方法

跟进这个方法
可以看到仅仅判断了改路径是否存在和不是目录就直接返回了,没有做任何过滤,所以能任意的去遍历文件

再来看看sec的代码
这里是用了pathFilter()方法去过滤

跟进看一下
while是用于url解码用的,关键在于if的判断

这个contains()是String类的方法,用来判断 .. 是否存在与该字符串
charAT(index)也是在String里面的方法,用来取出对应索引字符。
这种过滤对于linux来说还好,过滤了.. 和开头的第一个”/“,但是对于windows就以盘符开头的就不奏效了
仍然可以读取

文件上传漏洞
这里有个文件上传功能点,可以任意上传文件

抓包任意上传

 
再看看这个安全的上传,只能上传图片
这里第一步是对于后缀的白名单限制

然后第二个是对于MIME类型的是否在黑名单的校验,不能是js html这些

第三步是判断文件是否是图片

这个方法就是用BufferedImage来读取 若读取的不是图片则为空

他这个检查图片的方法过于简陋,所以这里简单的图片马还是能传上去的
copy ASCII.png/b+ma.jsp tuma.png




 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号