玩越权测试插件?我来助你
2024-8-30 16:47:51 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

在MITM交互劫持页面的交互插件,便能够找到我们的多认证综合越权测试插件。
目前多认证综合越权测试能够支持基于Cookie与Header Auth认证两种模式。
这里使用Vulinbox靶场中的逻辑场景进行插件测试。
首先注册两个用户,用户名分别为test1test2,接着登录test1的账号,获取其cookie为 
_cookie:11e0bdd7-c1e2-4fcd-82a6-7a341d5dc54ebr
接着将cookie配置进多认证综合越权测试插件,并启动插件:
接着在不退出test1的情况下,使用test2账号进行登录,从MITM流量中的插件是可以看到经过修改的数据包的。如下图,一共有两条数据,第一条为_cookie被移除了,做了一个未授权访问的检测,发现不存在未授权访问。而第二条的_cookie使用的是test1的,并且其返回包的内容与使用test2_cookie一模一样,因此我们认为其存在水平越权漏洞,并且将该条报文设置成红色,以便其更加显眼。
这里只有两条被修改过cookie的报文,那么我们要看原报文如何查看呢?很简单,只要点击MITM便可以了。
怎么样?该插件相比之前的交互式插件是不是更"酷"了呢?以上,我们实现了数据包的染色以及tag的添加,以便能够一眼看到哪些报文存在越权漏洞。事实上,对数据包添加tag与染色并不是什么魔法,它只是"简单地"加了一串yaklang的代码,便能够有如此之奇效。所以,在你编写自己的插件的时候,完完全全可以应用这些功能,让你的插件更加的酷炫,更加具有表现力。
为了进一步了解其相关原理,我们可以将鼠标悬浮于"多认证越权测试插件"上,查看其代码的实现。其染色与加tag主要逻辑在下方的handleReq中:
handleReq = (reqBytes, newValue) => { poc.HTTP( reqBytes, poc.https(https), poc.saveHandler(response => { tag= "" if len(enableResponseKeywordList) > 0 {
if respMatch(response.RawPacket,enableResponseKeywordList...){ tag = "响应内容标志值匹配" response.Red() }else { tag = "响应内容标志值消失" response.Green() } }else{ sim := str.CalcSimilarity(baseResponse, response.RawPacket) if sim > 0.95 { response.Red() } elif sim <= 0.4 { response.Green() } else { response.Grey() } showSim = "%.2f" % (sim * 100.0) tag = f"相似:${showSim}% " } if newValue == "" { tag = f"${tag} 移除 ${isCookieMode? f`Cookie[${key}]`:f`Header[${key}]`}" }else{ tag = f"${tag} 值: ${newValue}" } response.AddTag(tag) }), ) }
可以看到,当http数据包要被保存的时候,会调用saveHandler进行相关处理(函数的相关作用可以在yakRunner代码提示中进行查看)。具体逻辑为,如果返回包匹配到了我们手动设置的相关字段,那么就使用response.Red()让该数据染成红色,否则就是绿色。而如果没有手动设置关键字的话,那么就使用str.CalcSimilarity文本相似性算法,计算新的返回包与原来返回包直接的相似性,如果精度达到0.95以上的话就设置为红色。最后使用response.AddTag(tag)进行tag的添加。
以下是该交互性插件所需要添加的参数,分别为cookie的key和value。同时还有一个前提URL条件,如果填了前提URL条件,那么就只会改相关URL的cookie。修改cookie的行为本质是调用poc.ReplaceHTTPPacketCookie函数的,因此如果请求包中存在该cookie就会进行修改,不存在的话就会添加这个cookie。
在这里,我们以访问百度为例,配置内容如下:
启动后,可以发现与百度相关cookie都会被修改了:
这里值得注意的是,如果取消选中交互插件,那么页面会默认显示MITM的流量,需要点击插件最右边的按钮才能查看相关插件的流量。
END

  YAK官方资源 

Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ


文章来源: https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&mid=2247520992&idx=1&sn=3e52aeb904b05010968cc0532b1214cd&chksm=c2d1ee44f5a66752824fff83124c750ff6aa353e9f05caad7b75bd24c2bac9399cb0861ec3a8&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh