JAVA安全-目录遍历访问控制XSS等安全问题

QQ截图20220309085332.jpg

Javaweb 代码分析-目录遍历安全问题

根据提示上传一个文件到特定的位置下

QQ截图20220310091817.jpg

正常上传位置

QQ截图20220310091918.jpg

QQ截图20220310092025.jpg

测试发现改变名称可以改变上传文件的名称,由此可以尝试利用该变量控制上传路径

QQ截图20220310092445.jpg

QQ截图20220310092450.jpg

命名为../xy,上传文件后,发现路径更改(目录解析权限:对方设置目录解析权限,那么相对应的目录下的文件就会被执行相关权限,比如限制某个脚本的执行,则在这个目录下上传的后门就无法被执行。因此,如果存在目录遍历漏洞,就可以跳过目录解析权限)

QQ截图20220310092637.jpg

  • 加入字符过滤,再次尝试上传

QQ截图20220310094305.jpg

请求路径改了,传递的参数改了

QQ截图20220310094439.jpg

QQ截图20220310094511.jpg

表单名和文件名(这个好像是以表单的形式传参,其中fullname和emailfix是表单内传递的参数)

QQ截图20220310094542.jpg

源代码分析

  • 发现return中的执行语句多了一个判断,表单中的用户名不为空,并且用户名中的../用空替换掉
  • 这里的../只被replace过滤了一次,可以通过....//123重复构造来进行绕过

QQ截图20220310094716.jpg

成功绕过

QQ截图20220310095144.jpg

Javaweb 代码分析-前端验证安全问题

QQ截图20220310095636.jpg

点击提交

QQ截图20220310100706.jpg

点击登录,获取到一个用户的cookie和用户名与密码

QQ截图20220310100747.jpg

再次提交通过抓包修改数据,发送发现成功

QQ截图20220310100824.jpg

源代码分析

  • @PostMApping({"/InsecureLogin/task"})为路由地址,也就是说访问页面的时候会默认访问这个地址
  • 将传递的参数赋值给字符串usernamepassword
  • 如果传递的参数==captainjack/blackpearl(比较字符串中所包含的内容是否相同),就返回成功的界面,反之就返回失败

QQ截图20220310101005.jpg