目录

一、密钥泄露

二、KID

2.1、原理:

2.2、示例:

三、目录遍历

3.1、原理:

3.2、KID之目录遍历

3.2.1、前提:

3.2.2、利用:

3.2.3、示例:

3.2.4、利用:

3.2.5、扩展:

四、命令注入

4.1、前提:

4.2、原理:

4.3、KID之命令注入

4.3.1、原理:

4.3.2、示例:

4.3.3、拼接符:

五、SQL注入

5.1、原理:

5.2、KID之SQL注入

5.2.1、原理:

5.2.2、示例:


(事缓,则圆)


一、密钥泄露

无法暴力破解密钥,通过其他途径获取密码,并伪造任意token签名

eg:git信息泄露、目录遍历,任意文件读取、XXE漏洞等


二、KID

2.1、原理:

(1)KID代表“密钥序号”(Key ID头部可选字段),标识认证token的密钥。

(2)接收者能够使用密钥ID获得标识的密钥,也可以通过使用密钥ID而不是传递实际密钥来识别占有证明密钥。

(3)接收者可以通过在JWT中包含“ cnf”声明来以加密方式确认演示者拥有该密钥的证据,该声明的值为JSON对象,其中包含用于标识密钥的“kid”成员

— — — —

2.2、示例:

eg:KID参数

此字段用户可控制,可能会操纵它并导致危险的后果

{
        "alg": "HS256",

"typ": "JWT",

"cnf":{

"kid": "dfd1aa97-6d8d-4575-a0fe-34b96de2bfad"

}   //使用密钥dfd1……验证token
}


三、目录遍历

3.1、原理:

(1)利用没有充分过滤用户输入的…/之类的目录跳转符

(2)用户通过在输入框提交目录路径到服务器(目录跳转符…/,也可是目录跳转符的ASCII或unicode编码等)

(3)服务器跳转到相应目录来遍历任意文件,并反馈到前端

3.2、KID之目录遍历

3.2.1、前提:

KID是从文件系统中检索密钥文件的

— — — —

3.2.2、利用:

如果在使用前没有清理KID,通过目录遍历文件系统

利用文件系统中指定的任意文件作为认证密钥

— — — —

3.2.3、示例:

设定应用程序使用public文件作为密钥,并用该文件给HMAC加密的token签名

"kid": "../../public/css/main.css"   //利用公共文件main.css验证token

— — — —

3.2.4、利用:

(1)进行web漏洞扫描

(2)发现目标网站存在目录遍历漏洞

(3)进行网站目录爆破(eg:使用Dirb进行爆破)

(4)尝试进行目录遍历

— — — —

3.2.5、扩展:

爆破目录后

(1)寻找dbadmin后台数据库

(2)使用sqlmap进行密码爆破

(3)进入数据库,创建shell.php数据库

(4)生成php的shellcode(反弹网站的webshell)

(5)编辑shellcode.php,设为本机ip,侦听端口

(6)完善数据库信息,Default Value值处填执行shellcode的代码

(7)搭建http的web服务

(8)反弹,获取用户权限


四、命令注入

4.1、前提:

①使用了内部调用shell的函数:system(),exec()等;②应用程序的权限降很高,未降到最低③将外界传入的参数没有足够的过滤,直接传递给内部调用shell的函数;④参数中shell的元字符没有被转义

4.2、原理:

web应用在调用函数执行系统命令的时候,如果未对用户输入过滤,用户将自己的输入作为系统命令的参数拼接到命令行中,就会造成命令注(命令执行)的漏洞

4.3、KID之命令注入

4.3.1、原理:

如果KID参数直接传到不安全的文件,攻击者只需在输入的KID文件名后面添加命令,即可执行系统命令,读取操作可能会让一些命令注入代码流中。

— — — —

4.3.2、示例:

"key_file" | whoami;//查询当前用户

……

— — — —

4.3.3、拼接符:

符号 说明
; 前后命令依次执行 注意前后顺序,若更变目录,则必须在“一句”指令内
| 管道,只输出后者的命令 当第一条命令失败时,它仍然会执行第二条命令
|| 前命令执行失败后,才执行后命令
& 前台执行后任务,后台执行前任务 如 a&b&c 则显示c的执行信息,a b在后台执行
&& 前命令执行成功后,才执行后命令
``(反引号,仅linux) 即命令替换,echo `date`,输出系统时间 使用反引号运算符的效果与函数shell_exec()相同,但在激活了安全模式或者关闭了shell_exec()时是无效的
$(command) 这是命令替换的不同符号。与反引号效果一样。echo $(date),输出系统时间.

五、SQL注入

5.1、原理:

Sql 注入攻击是通过将恶意的 Sql 查询或添加等操作语句插入到输入参数中

后台服务器解析执行sql语句对数据库进行操作

并将结果返回到前端

5.2、KID之SQL注入

5.2.1、原理:

如果KID在数据库中检索密钥

攻击者在KID参数上利用SQL注入来绕过JWT安全机制,并返回任意值

5.2.2、示例:

"kid":"1' UNION SELECT 'key';--"  //使用字符串"key"验证token

(41.1)【JWT-KID漏洞】KID之目录遍历、命令注入、SQL注入相关推荐

  1. php post 漏洞_文件包含上传漏洞目录遍历命令执行漏洞

    制丨阿星 来源丨freebuff 作者丨Deutsh 文件上传漏洞: 一句话木马 一句话木马主要由两部分组成:执行函数与 接收被执行代码的变量 执行函数: eval() assert() create ...

  2. SQL注入——SQL注入漏洞利用(零)(值得收藏)

    一.什么是SQL注入漏洞 攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系 统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后 台数据库 ...

  3. linux遍历目录漏洞,ubuntu linux 目录遍历漏洞(CVE-2019-14452)

    漏洞描述 目录遍历 在0.9.16之前的Sigil容易受到目录遍历的攻击,允许攻击者通过在提取期间处理不当的ZIP存档条目中的../(点点斜杠)写入任意文件.d S k O 基本信息 CVE编号: C ...

  4. 目录遍历漏洞 php 攻击,目录遍历漏洞

    0x001 漏洞简介 目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任 ...

  5. 动网 php v1.0 漏洞,动网论坛dispuser.php页面SQL注入漏洞

    受影响系统: 动网论坛 Dvbbs php 2.0++ 描述: DVBBS是一款Aspsky.Net开发和维护的开放源码ASP Web论坛程序. 在DVBBS的dispuser.php文件中: if( ...

  6. java 框架注入漏洞修复_Mybatis框架下易产生SQL注入漏洞的场景和修复方法

    一.Mybatis框架下易产生SQL注入漏洞的场景 在基于Mybatis框架的Java白盒代码审计工作中,通常将着手点定位在Mybatis的配置文件中.通过查看这些与数据库交互的配置文件来确定SQL语 ...

  7. 【漏洞报送】泛微E-Office存在SQL注入漏洞(CNVD-2022-43246)

    0x01 泛微E-Office 泛微E-Office是一款标准化的协同 OA 办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用.高效智能的原则,为企业快速 ...

  8. mysql 注入用例_SQL注入漏洞安全测试(WVS/POST型/手工SQL注入)

    1.WVS自动化SQL注入测试 n  测试目的: 测试网站是否存在SQL注入漏洞. n  测试用例: 1)     Scan settings选择sql injection策略: 2)     输入扫 ...

  9. mysql sql注入漏洞修复_从Java角度修复SQL注入漏洞

    很多情况因为过滤不严导致很多网站存在sql注入,这里以用户登陆为例,简单举例 首先创建一个测试的数据库 比较基础,不写创建过程了 java代码如下: packagecn.basic.jdbc;impo ...

  10. 用友OA漏洞学习——NCFindWeb 目录遍历漏洞

    警告 请勿使用本文提到的内容违反法律. 本文不提供任何担保 目录 警告 一.概述 二.影响版本 三.漏洞复现

最新文章

  1. 清理C盘无用的垃圾的文件,给c盘瘦身
  2. android app打开流程_App冷启动,你还要我怎样?
  3. 个人博客园CSS样式美化
  4. MongoDB学习之路(三)
  5. Composer update 问题: Could not authenticate against github.com
  6. 【转】Spring事务超时时间可能存在的错误认识
  7. leetcode面试题 17.15. 最长单词
  8. Oracle数据库更新时间的SQL语句
  9. 一步步编写操作系统 39 二级页表1
  10. kibana 显示 @timestamp 时间问题(utc or browser当前时间)自动转换显示
  11. sql azure 语法_将SQL工作负载迁移到Microsoft Azure:规划迁移
  12. 【Java】内存解析
  13. adb 最大连接_工具集 | Android Studio—使用 WI-FI 进行 ADB 调试
  14. js获取可视区域高度
  15. unittest框架(惨不忍睹低配版)
  16. 【知识梳理】《Kafka权威指南》知识梳理
  17. DPDK Release 20.05
  18. 计算机语言写信祝福语,写信祝福语
  19. 因机构系统维护服务暂不可用_因合作方系统维护,暂时无法使用是什么意思?...
  20. clicktorun 离线_Project 2016 和 Visio 2016 的 Office Click-to-Run 永久(C2R P)版本

热门文章

  1. 【EMNLP 2021】SimCSE:句子嵌入的简单对比学习 【CVPR 2021】理解对比学习损失函数及温度系数
  2. Ajax 和 XML: 五种 Ajax 反模式
  3. Unable to add window——token android.os.BinderProxy@196e65b8 is not valid;is your activit is running?
  4. Spring更简单的存储对象------不使用XML而使用注解
  5. Linux下FTP;LFTP;TFTP;SFTP;NCFTP;RCP;SCP的使用
  6. idea中找不到maven projects的集中解决办法
  7. 移动echarts地图省份名称的位置
  8. 多级列表为“第一章”下产生含“阿拉伯数字章节号”的题注(word题注自定义)
  9. html bs架构调用客户端打印机用客户端及客户端局域网打印机打印,使用ScriptX.cab控件...
  10. centos ifconfig不显示IP地址解决办法之一(亲测有效)