文章目录

  • 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安全(肆)相关推荐

  1. 小迪渗透WEB漏洞(叁-肆)

    文章目录 33. 逻辑越权之水平垂直越权全解(33-39) 33.1 水平,垂直越权,未授权访问 33.2 修复防御方案 33.3 垂直越权之添加用户 演示案例 涉及资源 34. 逻辑越权之登陆脆弱及 ...

  2. JAVA——实验肆——多线程

    实验目的: 掌握JAVA多线程结构和开发过程. 了解多线程生命周期和运行机制. 实验内容: 用继承Thread类实现多线程:用实现Runnable接口实现多线程. 代码: package Ball;i ...

  3. 小迪渗透内网渗透(玖)

    文章目录 65. 域环境&工作组&局域网方针(65-72) 演示案例: 涉及资源: 66. 横向批量&schtasks&im&packet 演示案例: 涉及资源 ...

  4. 小迪渗透应急响应(拾)

    文章目录 73. WEB分析php&javaweb自动化工具(73-75) 应急响应: 必备知识点: 准备工作: 有明确信息网站被入侵: 无明确信息网站被入侵: 常见分析方法: 演示案例: 涉 ...

  5. 小迪渗透基础入门(壹)

    文章目录 基础入门(P1-P5) 1. 概念名词 1.1 域名 1.2 DNS 1.3 脚本语言 1.4 后门 1.5 WEB 1.6 WEB 相关安全漏洞 资源 2. 数据包扩展 2.1 https ...

  6. 小迪渗透权限提升(捌)

    文章目录 58. 网站权限后台漏洞第三方获取(58-64) 具体有哪些权限需要我们知道和了解掌握的? 演示案例: 59. Win溢出漏洞及AT&SC&PS提权 演示案例: 案例 1:如 ...

  7. 小迪渗透信息收集(贰)

    文章目录 加密算法&cdn&信息收集(6-10) 6. 加密算法 6.1 常见加密编码等算法解析 6.2 常见加密形式算法解析 6.3 常见解密方式 6.4 了解常规加密算法的特性 6 ...

  8. 小迪渗透python开发(拾壹)

    文章目录 76. 内网收集Scoket&子域名&DNS(76-79) 应急响应补充知识点 Python 开发相关知识点: 知识点: 演示案例: 涉及资源: 77. 批量Fofa& ...

  9. 小迪渗透测试学习笔记(四)基础入门-WEB源码拓展

    前言: WEB源码在安全测试中是非常重要的信息来源,可以用来代码审 计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析. 比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其 ...

最新文章

  1. linux命令route
  2. flink 三种时间机制_Flink1.10入门:时间机制简介
  3. linux系统能安装到sdc上吗,如何安装linux系统
  4. 时间序列(七): 高冷贵族: 隐马尔可夫模型
  5. XCTF-高手进阶区:NewsCenter
  6. html中样式表的三种形式,CSS样式表有几种存在方式
  7. ntp-redhat 同步时间配置
  8. opencv 直方图_OpenCV-Python 直方图-3:二维直方图 | 二十八
  9. SpringBoot集成Activiti Explorer
  10. 数据治理之数据质量管理
  11. mx350显卡天梯图_显卡天梯图2020新排行榜
  12. adb shell screencap/screenrecord(三级命令)
  13. 骗分技巧————《OI骗分导论》
  14. 网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
  15. ios识别人脸自动拍照_GitHub - qingweiiOS/FaceRecognition: 活体人脸识别,识别人脸,识别张嘴和摇头动作,并拍照...
  16. 英语背单词有用吗_学英语千万不要背单词 背单词有效吗
  17. OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  18. 请善待,那些舍得借钱给你们的人!
  19. 颜色恒常性 Retinex
  20. oracle jdbc执行,java jdbc 执行oracle存储过程

热门文章

  1. java 实现数据压缩与解压
  2. 能计算对数函数、指数函数和幂函数的模拟计算机
  3. PyCharmMac键盘符
  4. 【颜纠日记】干性皮肤的人油性皮肤更容易衰老?
  5. Java 中解析 xml 格式字符串的数据
  6. Infinity Ventures Crypto宣布旗下第一支基金以七千万美元完成募资
  7. AD设置1:1打印出PCB图纸
  8. 收藏:电力窃漏电用户自动识别,可视化全流程这样操作~
  9. php获得服务器路径,PH获取当前url路径及服务器路径汇总 (url 获取当前路径 服务器路径),ph当前路径_PHP教程...
  10. web安全第一天 ,域名,dns