Burpsuite靶场---目录穿越专题
目录穿越专题
目录穿越读取任意文件
0x1
利用返回上级目录符..
来穿越
比如一个url?filename=test.jpg
,写过点代码的都知道图片放在当前类似image
的目录下,结合linux的文件管理,这张图的绝对路径就是/var/www/image/test.jpg
于是我们就可以这样拼接?filename=../../../etc/passwd
实现任意文件读取
0x2 禁用了..符
如果不能用..
我们也可以尝试直接传绝对路径?filename=/ect/passwd
0x3 有过滤
会对我们传入的../
进行清除过滤,但是只会过滤一次,我们可以采用双写绕过
0x4 二次URL解码
当网站对输入做了正则匹配,我们可以考虑用url编码进行绕过,这样在正则的时候不会被匹配到,但是到服务器时,又对我们输入做了解码,成功利用
这里可以用burp自带的fuzz字典进行一个爆破
0x05 匹配以预期的路径
有些程序他只匹配你是否以他预期的路径文件开头,而不去对后面的做防护,一样的思路绕过
0x06 %00截断
看题目描述是会判断是否为图片文件格式的后缀结尾,但是在后端验证时,当读到00空字符就不会继续读下去,所以我们利用如下的payload
预防&&总结
如何防御文件穿越漏洞
- 设置白名单,仅允许传入路径中允许包含的字符和数字
- 验证输入后,使用文件平台的API来规范路径,看是否以预期基本目录开头
burp给了一段演示代码(java)
File file = new File(BASE_DIRECTORY, userInput); |
这个专题只有6个实验,也都比较简单,可以考虑和文件上传漏洞结合起来
Burpsuite靶场---目录穿越专题