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);
if (file.getCanonicalPath().startsWith(BASE_DIRECTORY)) {
// process file
}

这个专题只有6个实验,也都比较简单,可以考虑和文件上传漏洞结合起来

Burpsuite靶场---目录穿越专题

https://lhxhl.github.io/2022/03/10/burp_dir_tra/

作者

秋秋晚

发布于

2022-03-10

更新于

2022-05-09

许可协议

评论

:D 一言句子获取中...