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

演示案例:
postmapping注解_Spring注解介绍

Javaweb 路径遍历

靶场:webgoat-Path traversal(路径遍历)
路径(目录)遍历是一种漏洞,攻击者可以通过该漏洞访问或存储应用程序运行位置之外的文件和目录。这可能会导致从其他目录读取文件,以及在文件上传覆盖关键系统文件的情况下。

第一关

在这里插入图片描述

文件上传配合目录遍历 覆盖文件自定义文件存储地址-基于用户名存储问题
在此关卡中,目标是覆盖文件系统上的特定文件。当然,WebGoat 关心用户,因此您需要将文件上传到正常上传位置之外的以下位置,得知他的任务是将文件上传到webgoat指定的其他目录上

1、随便上传一个文件抓包查看:
在这里插入图片描述
2、抓包放行后,得到存储路径
在这里插入图片描述

3、可以看出是将fullName作为文件的上一目录上传,即\username\fullname\文件名
4、故我们尝试通过…/存储到上一路径
5、将fullname改为…/test
6、放行,成功
在这里插入图片描述
7、白盒审计
POST、GET、@RequestBody和@RequestParam区别
@RequestParam有三个配置参数:
required 表示是否必须,默认为 true,必须。
defaultValue 可设置请求参数的默认值。
value 为接收url的参数名(相当于key值)。

关键代码:

    @ResponseBody
    public AttackResult uploadFileHandler(@RequestParam("uploadedFile") MultipartFile file, @RequestParam(value = "fullName", required = false) String fullName) {
        return super.execute(file, fullName);
    }
    

预防:
目录解析

springframework javaweb的spring框架,类似于php的phpthink框架

第二关

在这里插入图片描述

同样的任务,只是用了一个replace将…/去掉而已,双写即可
Payload: …//x
在这里插入图片描述

白盒审计:
在这里插入图片描述
过滤fullName中的…/一次

第三关

可知不对fullname验证
在这里插入图片描述
发现fullname赋值为什么,最终都是test
在这里插入图片描述
抓包查看,修改filename,在前面加…/
在这里插入图片描述
成功
在这里插入图片描述

第四关

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

1、先点一下show random cat picture按钮,burpsuite抓包

在这里插入图片描述2、请求包没有什么有用的数据,放行查看响应包
在这里插入图片描述
3、而任务是想让我们尝试找到一个名为path-traversal-secret.jpg,

4、像下图这样random-picture后面增加?id=1.jpg,发送报文之后,响应404 Not Found,发现服务器查找的文件名在id的值后面加上了.jpg。所以如果要查看1.jpg的内容,应该在random-picture后面增加?id=1
在这里插入图片描述

接下来可以试试random-picture后面增加?id=path-traversal-secret
结果返回了400 Bad Request
在这里插入图片描述

再试试random-picture后面增加?id=…/path-traversal-secret

也返回了400 Bad Request,而且提示请求参数中有非法字符
在这里插入图片描述

把上述payload中的…/改为%2e%2e%2f(…/的url编码)
还是返回400 Bad Request,但是不提示有非法字符了。
那再往上一级目录看看,?id=%2e%2e%2f%2e%2e%2fpath-traversal-secret
从返回结果来看,已经找到要找的文件了。
提示用户名的SHA-512 hash就是本题的答案
在这里插入图片描述

网上搜一下SHA512在线,然后把用户名进行SHA512 hash
在这里插入图片描述

将得到的结果填入小旗子后面的输入框,submit secret即可通过本关
在这里插入图片描述

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

不安全登录 Insecure Login-基于前端认证

1、页面提示单击登录抓包
在这里插入图片描述
2、得到用户和密码,登录通过
在这里插入图片描述
在这里插入图片描述

1、黑盒测试查看源代码发现是js判断,关闭js即可
在这里插入图片描述
2、白盒测试,查看函数,发现有16进制,解码后是账号密码
16进制转换网页
转换前把\x去掉
在这里插入图片描述
3、白盒测试,查看submit点击的源代码
在这里插入图片描述

Javaweb 代码分析-逻辑越权安全问题

代码分析过关逻辑

在这里插入图片描述
此题目是为了说明请求返回的包里可能包含了更多的内容。此题目要求将response包返回的所有参数比界面上View Profile中显示的多的几个参数,具体如下。
在这里插入图片描述

枚举用户参数对应数据库的其他数据信息
role,userid
**加粗样式**

url接口

在Stage 3中知道了tom的userId是2342384。
在这里插入图片描述

{
  "role" : 3,
  "color" : "yellow",
  "size" : "small",
  "name" : "Tom Cat",
  "userId" : "2342384"
}

该题目就是通过路由访问tom的配置信息,在输入框里输入WebGoat/IDOR/profile/2342384,就通过了此题目。
在这里插入图片描述

白盒测试
在这里插入图片描述
通过参数值构造 URL 获取用户更多的信息
WebGoat/IDOR/profile/2342384

Javaweb 代码分析-XSS 跨站安全问题

XSS 跨站

代码分析结合页面解释过关
第2关:yes

第7关:修改card number + 绕过黑名单
在这里插入图片描述

在这里插入图片描述

拓展-安卓 APP 反编译 JAVA 代码

#核心知识点:Java 代码分析 === Apk_App 分析
模块引用(框架,自带等),路由地址,静态文件(html.js 等),简易代码理解等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值