我们要想成功得到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
去加密,传上去就可以了。