我们要想成功得到webshell,需要改变文件的传输路径,本次使用webGoat进行简单练习,掌握几种简单的绕过方式。
打开靶场实战一下

Full Name 的test前面加上 ../

这里先解释一下目录遍历的意义:目录解析权限,简单来说,我们上传的后门在此文件夹下没有被解析执行的权限,我们通过更改路径从而可以把此后门程序执行。
我们主要看模块引用(框架,自带等)路由地址、静态文件(html、js等),简单代码理解。

先接收上传的文件变量,MultipartFile后门跟的是类型file

在BP我们也可以看到,它上传的文件名uploadFile变量

再接收输入框fullName的值
![]()
BP数据包传入了fullName

![]()

原因是replace进行黑名单过滤
![]()
这样的绕过很简单,我提供几个思路:
- 双写....//
- 伪协议
- 编码
- 等价


要求放在/home/webgoat/.webgoat-8.1.0/PathTraversal/ 下,BP抓包放在重发器里面分析,这三个输入点都没有回显,我们接着试试请求部分

找到注入点

要求找到名叫path-traversal-secret.jpg的文件


加上id后,404

再加上目标文件

400请求参数有误或者请求有误,我们试试../进行URL编码

不提示有非法字符,我试过双写绕过,其他形式的编码,最后发现在../../找到200

去加密,传上去就可以了。