XiaodiSec day021 Learn Note 小迪安全学习笔记
记录得比较凌乱,不尽详细
javaweb
2024.01.30 0:11
知识点
javaWeb 相关
JWT
越权
开始
知识点 1
webgoat 在 github 中
8.22 版本
不会全讲,只是挑一部分
path traversal 第二关
上传到指定位置可以上传到根目录,防止默认目录中无代码执行权限
知识点 2
回答安全问题,如果数据库中没有键名则直接返回验证成功
知识点 3
JWT 令牌 身份验证
如何判断是否使用了 jwt
在 cookie 中观察 jwt 的三个组成部分 header, payload, signature
用.连接的三部分,每一段的格式为大小写和数字随机
请求的位置: Cookie: access_token = jwt 格式的串
判断方法
这种情况多发生 在用户有多种的情况下,如注册用户(用户状态有注册用户与未注册用户) 可以抓包判断
这种用户状态判断方式多在 java 或 python 中被应用,而 Php 中使用较少
jwt 在线解密,可以解密出加密前的内容
jwt 中,header 段中存储加密方式,payload 段中存储加密原始值,signature 段中存储签名(签名中有密钥)
如果开发者使用了空加密,那么就容易了
抓包后篡改,尝试使用空密钥的第三段,这种方法能否成功主要取决于目标服务器对空密钥加密的支持
此外,jwt 还有 kid 可选项,可造成任意文件执行,sql 注入等漏洞
jwt 还有更多内容,在 ctf 中也常考,后续课程中将介绍
隐藏属性
隐藏属性:response 中返回了敏感键值对,前端接收但是不在网页中显示
水平越权:篡改如键 userId 的值,尝试跳转到其他 userId 的用户中
知识点 4
易受攻击的组件
组件可以看成 js 等常用库,用来实现特定的功能,如 jquery
在 java 和 python 中比较常见
判断方法是直接看文件中的 import 文件,有官方库或第三方库
在搜索引擎中查找库的对应版本的漏洞
找 Poc
弹个计算器