小迪渗透JAVA安全(肆)
文章目录
- 40. JWT安全及预编译CASE注入(40-41)
- 40.1 [JWT](https://zhuanlan.zhihu.com/p/86937325)
- 40.2 身份验证攻击-JWT修改伪造
- 40.3 SQL Injection(mitigation)
- 40.4 Java代码审计入门:WebGoat8
- 涉及资源
- 41. 目录遍历访问控制XSS等安全问题
- 涉及资源
视频资源
40. JWT安全及预编译CASE注入(40-41)
什么是 JWT?
JSON Web Token(JSON Web 令牌)是一种跨域验证身份的方案。JWT 不加密传输的数据,但能够通
过数字签名来验证数据未被篡改(但是做完下面的 WebGoat 练习后我对这一点表示怀疑)。
JWT 分为三部分,头部(Header),声明(Claims),签名(Signature),三个部分以英文句号.隔开。
JWT 的内容以 Base64URL 进行了编码。
头部(Header)
{
"alg":"HS256",
"typ":"JWT"
}
alg是说明这个 JWT 的签名使用的算法的参数,常见值用 HS256(默认),HS512 等,也可以为 None。HS256表示 HMAC SHA256。
typ说明这个 token 的类型为 JWT
声明(Claims)
{
"exp": 1416471934,
"user_name": "user",
"scope": [
"read",
"write"
],
"authorities": [
"ROLE_ADMIN",
"ROLE_USER"
],
"jti": "9bc92a44-0b1a-4c5e-be70-da52075b9a84",
"client_id": "my-client-with-secret"
}
JWT 固定参数有:
iss:发行人
exp:到期时间
sub:主题
aud:用户
nbf:在此之前不可用
iat:发布时间
jti:JWT ID 用于标识该 JWT
签名(Signature)
服务器有一个不会发送给客户端的密码(secret),用头部中指定的算法对头部和声明的内容用此密码进行加密,生成的字符串就是 JWT 的签名。
下面是一个用 HS256 生成 JWT 的代码例子
HMACSHA256(base64UrlEncode(header) + “.” + base64UrlEncode(payload),secret)
1、用户端登录,用户名和密码在请求中被发往服务器
2、(确认登录信息正确后)服务器生成 JSON 头部和声明,将登录信息写入 JSON 的声明中(通常不应写入密码,因为 JWT 是不加密的),并用 secret 用指定算法进行加密,生成该用户的 JWT。此时,服务器并没有保存登录状态信息。
3、服务器将 JWT(通过响应)返回给客户端
4、用户下次会话时,客户端会自动将 JWT 写在 HTTP 请求头部的 Authorization 字段中
5、服务器对 JWT 进行验证,若验证成功,则确认此用户的登录状态
6、服务器返回响应
40.1 JWT
40.2 身份验证攻击-JWT修改伪造
接上部分,产生歧义的”=“,”+“,”/“需要删除;
而第一部分说明的加密方法是none,所以第三部分为空就好。
40.3 SQL Injection(mitigation)
防御 sql 注入,其实就是 session,参数绑定,存储过程这样的注入。
利用 session 防御,session 内容正常情况下是用户无法修改的 select * from users where user = "'" + session.getAttribute("UserID") + "'";
参数绑定方式,利用了 sql 的预编译技术
String query = "SELECT * FROM users WHERE last_name = ?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, accountName);
ResultSet results = statement.executeQuery();
上面说的方式也不是能够绝对的进行 sql 注入防御,只是减轻。
参数绑定方式可以使用下面方式绕过。
通过使用 case when
语句可以将 order by
后的 orderExpression
表达式中添加select
语句。
40.4 Java代码审计入门:WebGoat8
参考:https://www.freebuf.com/vuls/216457.html
涉及资源
https://jwt.io/#encoded-jwt
https://www.ctfhub.com/#Ichallenge
https:/www.zhihu.com/question/43581628
https://www.freebuf.com/vuls/216457.html
https://www.cnblogs.com/klyjb/p/11473857.html
41. 目录遍历访问控制XSS等安全问题
本次直播注重代码分析,熟悉 javaweb 开发结构,掌握 javaweb 代码审计流程,其次才是相关漏洞解释(因前期漏洞原理已基本讲解完
毕),通过本次直播大家务必学会分析相关代码路径,结构,框架等知识点。
涉及资源
https://pan.baidu.com/s/19-w0GeDVYvHH6yRz9cNpGw oms7
小迪渗透JAVA安全(肆)相关推荐
- 小迪渗透WEB漏洞(叁-肆)
文章目录 33. 逻辑越权之水平垂直越权全解(33-39) 33.1 水平,垂直越权,未授权访问 33.2 修复防御方案 33.3 垂直越权之添加用户 演示案例 涉及资源 34. 逻辑越权之登陆脆弱及 ...
- JAVA——实验肆——多线程
实验目的: 掌握JAVA多线程结构和开发过程. 了解多线程生命周期和运行机制. 实验内容: 用继承Thread类实现多线程:用实现Runnable接口实现多线程. 代码: package Ball;i ...
- 小迪渗透内网渗透(玖)
文章目录 65. 域环境&工作组&局域网方针(65-72) 演示案例: 涉及资源: 66. 横向批量&schtasks&im&packet 演示案例: 涉及资源 ...
- 小迪渗透应急响应(拾)
文章目录 73. WEB分析php&javaweb自动化工具(73-75) 应急响应: 必备知识点: 准备工作: 有明确信息网站被入侵: 无明确信息网站被入侵: 常见分析方法: 演示案例: 涉 ...
- 小迪渗透基础入门(壹)
文章目录 基础入门(P1-P5) 1. 概念名词 1.1 域名 1.2 DNS 1.3 脚本语言 1.4 后门 1.5 WEB 1.6 WEB 相关安全漏洞 资源 2. 数据包扩展 2.1 https ...
- 小迪渗透权限提升(捌)
文章目录 58. 网站权限后台漏洞第三方获取(58-64) 具体有哪些权限需要我们知道和了解掌握的? 演示案例: 59. Win溢出漏洞及AT&SC&PS提权 演示案例: 案例 1:如 ...
- 小迪渗透信息收集(贰)
文章目录 加密算法&cdn&信息收集(6-10) 6. 加密算法 6.1 常见加密编码等算法解析 6.2 常见加密形式算法解析 6.3 常见解密方式 6.4 了解常规加密算法的特性 6 ...
- 小迪渗透python开发(拾壹)
文章目录 76. 内网收集Scoket&子域名&DNS(76-79) 应急响应补充知识点 Python 开发相关知识点: 知识点: 演示案例: 涉及资源: 77. 批量Fofa& ...
- 小迪渗透测试学习笔记(四)基础入门-WEB源码拓展
前言: WEB源码在安全测试中是非常重要的信息来源,可以用来代码审 计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析. 比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其 ...
最新文章
- linux命令route
- flink 三种时间机制_Flink1.10入门:时间机制简介
- linux系统能安装到sdc上吗,如何安装linux系统
- 时间序列(七): 高冷贵族: 隐马尔可夫模型
- XCTF-高手进阶区:NewsCenter
- html中样式表的三种形式,CSS样式表有几种存在方式
- ntp-redhat 同步时间配置
- opencv 直方图_OpenCV-Python 直方图-3:二维直方图 | 二十八
- SpringBoot集成Activiti Explorer
- 数据治理之数据质量管理
- mx350显卡天梯图_显卡天梯图2020新排行榜
- adb shell screencap/screenrecord(三级命令)
- 骗分技巧————《OI骗分导论》
- 网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
- ios识别人脸自动拍照_GitHub - qingweiiOS/FaceRecognition: 活体人脸识别,识别人脸,识别张嘴和摇头动作,并拍照...
- 英语背单词有用吗_学英语千万不要背单词 背单词有效吗
- OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
- 请善待,那些舍得借钱给你们的人!
- 颜色恒常性 Retinex
- oracle jdbc执行,java jdbc 执行oracle存储过程
热门文章
- java 实现数据压缩与解压
- 能计算对数函数、指数函数和幂函数的模拟计算机
- PyCharmMac键盘符
- 【颜纠日记】干性皮肤的人油性皮肤更容易衰老?
- Java 中解析 xml 格式字符串的数据
- Infinity Ventures Crypto宣布旗下第一支基金以七千万美元完成募资
- AD设置1:1打印出PCB图纸
- 收藏:电力窃漏电用户自动识别,可视化全流程这样操作~
- php获得服务器路径,PH获取当前url路径及服务器路径汇总 (url 获取当前路径 服务器路径),ph当前路径_PHP教程...
- web安全第一天 ,域名,dns