xiaodisec day021

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 该内容涉及JavaWeb、WebGoat的Path Traversal、JWT安全及隐藏属性。讨论了JWT的身份验证机制,包括其组成、解密和潜在的安全风险,如空密钥利用。还提到了隐藏属性在水平越权漏洞中的作用,以及识别易受攻击组件的方法,如查看import语句和搜索漏洞。

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

弹个计算器

相关文章
|
5月前
|
安全 中间件 应用服务中间件
xiaodisec day032
`#day32` 讲解了文件上传漏洞,重点在绕过过滤策略,如使用`.user.ini`避开点号过滤。讨论了利用解析漏洞,将数字IP转换为字符串。网站的图片裁剪功能被利用来隐藏后门,因JPEG与PNG处理差异,形成二次渲染。手动插入木马困难,推荐脚本自动化。在线靶场演示不稳定,但CTF目标是理解概念而非单纯解题。`.htaccess`涉及Apache解析配置,不适用于Nginx。结合包含漏洞,中间件解析漏洞是关键。若过滤严格,可通过变量赋值拼接木马实现免杀。
|
5月前
|
Java 中间件 测试技术
xiaodisec day023
Day23 Python 知识讲解聚焦于`pyc`反编译和`SSTI`(模板注入)。`pyc`是跨平台的编译结果,常在CTF中出现。`SSTI`发生在Web应用,当错误处理不当,允许注入代码执行,404页面可能是切入点。实战中判断SSTI和建站语言(如Python)需观察回显和使用工具如fofa。黑盒测试SSTI颇具挑战。
|
5月前
|
SQL 开发框架 关系型数据库
xiaodisec day024
本文介绍了SQL注入的相关知识,包括Access和MySQL数据库的注入。漏洞源于特定变量和函数,可通过网址参数或抓包发现。注入语句位置与字段相关。工具流程包括猜测数据库类型,如ASP配Access,然后通过ORDER BY和UNION查询列数。在Access中尝试偏移注入,MySQL中可能涉及文件读写和跨库查询。判断是否为root用户可用`user()`函数,MySQL5.0以上可查information_schema数据库获取详情。示例网址:`https://www.crfbehavioralhealthcare.org/researchDetails.php?id=MS==`。
|
5月前
|
SQL JSON PHP
xiaodisec day027
本文档介绍了SQL注入的不同类型,包括数字型、字符型、搜索型、编码型和加密型,强调了在注入时对数据格式和闭包的考虑。提到了SQLMap工具的进阶使用,如利用tamper目录中的base64encode.py进行编码注入。同时,讨论了宽字符绕过技巧,如利用中文字符来避免PHP的addslash函数对攻击的阻止。
|
5月前
|
JavaScript 安全 前端开发
xiaodisec day22
探索前端安全:JavaScript中的变量与函数暴露可能引发命令执行风险。利用Wappalyzer等工具检测JS使用,寻找如`/static/js/app.js`等线索。Node.js框架安全学习,借助Vulhub漏洞环境(GitHub可得)与Docker进行安全测试。
|
5月前
|
SQL 关系型数据库 MySQL
xiaodisec day025
了解 SQL 注入攻击,关注 MySQL、MSSQL 和 PostgreSQL 的高权限注入。利用 `loadfile` 和 `outfile` 函数在 MySQL 中读写文件,常见目标包括配置文件。获取路径方法包括报错显示、phpinfo 和字典攻击。注意 `secure-file-priv` 配置限制,但在某些环境下可突破。开启慢日志记录,植入后门,通过 PHP 执行。实战中,观察地址和输入框判断注入点,根据报错信息推测数据库类型。若无回显,尝试猜测注入点。
|
5月前
|
开发框架 安全 Java
xiaodisec day031
`#day31` 文件上传漏洞探讨:涉及 CMS 中的文件上传,通常需配合抓包工具。绕过前台验证和 MIME 验证(如变造 `content-type`),利用大小写或.php伪装上传。当.php被过滤时,可试用短标签`<= 'php代码'>`。若过滤括号,则可能无法构造有效payload。文件头过滤常用于防止非正常文件上传,而.user.ini文件能包含后门代码实现命令执行。同时,修改`user-agent`为PHP木马以尝试通过日志记录通道触发。总结:上传漏洞利用策略多变,关键在于识别并绕过安全防护措施。
|
5月前
|
SQL 监控 Java
xiaodisec day028
Day 28探讨了SQL注入,关注点在于提交方式的注入。PHP、Spring Boot和Flask中的GET、POST、COOKIE数据提交都可能引发安全问题。后端处理数据时,如记录IP、根据UA显示页面或文件上传可能导致SQL注入。使用sqlmap工具进行黑盒测试,通过修改数据包或指定POST数据来探测注入点。实战中,CMS系统记录IP访问可能产生注入风险,可以利用工具如Seay代码审计系统进行监控和检查。
|
5月前
|
SQL 缓存 NoSQL
xiaodisec day026
`day26`探讨了Oracle与MongoDB的SQL注入,强调手动注入技巧。尽管`sqlmap`工具不支持NoSQL,它提供了一些选项,如清除缓存(--purge)、查看当前数据库(--current-db)和数据转储(--dump)。通过-r参数可以利用保存在TXT文件中的数据包进行测试,文件内星号(*)标记注入点,例如`username=admin*`。Metasploit Framework(MSF)未详述。
|
5月前
|
SQL 数据库
xiaodisec day029
在Day 29的学习中,聚焦SQL注入的查询方式,特别是盲注技术。当查询结果不直接回显时,需采用不同策略。盲注包括逻辑判断和基于延时、报错的判断。通过逻辑判断,如使用`left()`函数猜测数据库名。基于延时的方法利用`sleep()`函数观察响应时间变化。报错注入依赖服务器错误信息的回显。实际操作中,可利用工具进行检测,因为手动注入在某些场景下效率较低。