【JWT-KID漏洞】KID之目录遍历、命令注入、SQL注入
【JWT-KID漏洞】KID之目录遍历、命令注入、SQL注入
目录
(事缓,则圆)
一、密钥泄露
无法暴力破解密钥,通过其他途径获取密码,并伪造任意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
- 点赞
- 收藏
- 关注作者
评论(0)