一、起因:
Xray是一个非常好的自动化漏洞挖掘工具。我们通常在进行漏洞挖掘的时候,都会通过BurpSuite+Xray进行自动化的漏洞挖掘,官方也给了配置和使用方法,链接放到参考文献中,感兴趣的朋友也可以自己搜索一下。容器镜像仓库的具体问题可以到我们网站了解一下,也有业内领域专业的客服为您解答问题,值得您的信赖!
工具虽然好用,但这次遇到的是一个有签名算法的目标,在这种情况下,上面的这套组合就显得有气无力了。尝试扫了一下,虽然发送了很多payload,但没有发现任何漏洞。
由于从事于漏洞挖掘工作,总有一种感觉(感觉很重要,大家都懂得),这个东西有漏洞。
最后通过自己努力和改造,终于挖到了XSS漏洞。这篇文章主要给大家说说我是怎么挖到这个漏洞的。
XSS是web安全中最为常见的漏洞,XSS全称是Cross Site Script。XSS攻击通常指黑客通过“HTML注入”篡改了网页,插入了恶意脚本,从而控制用户浏览的一种攻击。这里的跨站访问,可以是从正常的网站跨到黑客的服务器,也可以是黑客的服务器跨到正常的网站。XSS漏洞经常出现在需要用户输入的地方,这些地方一旦对输入不进行处理,黑客就可以进行HTML注入,进而篡改网页。
先放一张成功后的图片。
二、必备工具:
操作系统: WIN10_X64
1. BurpSuite(Community)
渗透神器,如果你还不知道这个,那么只能说明你不是圈内人,赶快去百度一下吧。
2. xray(免费社区版):
是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持 Windows / macOS / Linux 多种操作系统,可以满足广大安全从业者的自动化 Web 漏洞探测需求。
3. jadx:
jadx是个人比较喜欢的一款反编译利器,同时支持命令行和图形界面,能以最简便的方式完成apk的反编译操作。
4. Jython:
Jython本质上是一个Java应用程序,它允许编码人员使用Java编码调用Python库反之,也可以使用Python调用Java的库。
5. Python:
我使用的是Python3.7
三、原理:
分析一下原因,通过服务器端都是url的请求,应该是这样的处理方法(python伪代码):
通过上面的图我们可以看出浏览器发出的链接都是直接发送到xray的,所以如果加入了签名算法,那么就直接返回了,根本到不了核心的逻辑。
从上面的图可以看到,先把url发到xray,由xray转发到BurpSuite,在Burp中加入了ptyhon插件对url计算sign,替换了原有的url,这样就可以跳过签名的检测了。
知道了原理。我们就可以行动了。
四、最佳实践:
这里是的目标是apk文件,打开BurpSuite进行抓包,找到需要渗透测试的请求,发现请求中有sign的字段,应该是有签名校验的。形式如下:
关于怎么找算法,不是这篇文章的重点,这里简单介绍一下,无论是apk还是web都是一样的,apk的加密算法通常都放到so文件或者直接在java代码中;web的签名算法,通常都会写到js脚本中,作为一名合格的渗透人员,相信这个应该都不是难事。
本文的目标算法比较简单,作者把算法直接写到了apk中,使用jadx,搜索sign的字段,很容易就找到了算法:
我们不造轮子,直接用官方的插件来修改。从Github上下载官方python插件,地址:
官方有详细的API介绍文档,大家可以参考:
贴上我修改后的源码的关键部分:
五、总结:
通过本文的介绍,相信大家以后遇到有sign校验的目标时,又多了一种处理的方式。当然也可以利用其他的组合,比如:xray+mitmproxy,burpsuite+scan等,总之方法有很多,适合自己就行,在这里只是抛砖引玉一下。只要是能达到目的就可以。
做为一个渗透测试人员,相信大家手上有很多优秀的渗透测试工具,这些工具的组合,就类似于我们手中的魔方,可以任意组合使用,使用的好,就可以事半功倍。 |