java 漏洞扫描 开源_有哪些开源web应用漏洞扫描工具?

java 漏洞扫描 开源_有哪些开源web应用漏洞扫描工具?学习的话推荐你看看这块扫描器:backslash-powered-scannerPortSwigger/backslash-powered-scanner​github.com现有的web扫描器通过在某个参数上利用大量特定payload进行测试或者寻找特征来找寻服务端的注入漏洞几乎像一个杀软。在本文中,作将分享另一种扫描方式的概念和开发过程,这种扫描方式能够发现和确认已知与未知类型的注入漏洞。…

学习的话推荐你看看这块扫描器:backslash-powered-scannerPortSwigger/backslash-powered-scanner​github.com43e97ef9212a6a002f4d487b54412248.png

现有的web扫描器通过在某个参数上利用大量特定payload进行测试或者寻找特征来找寻服务端的注入漏洞–几乎像一个杀软。在本文中,作将分享另一种扫描方式的概念和开发过程,这种扫描方式能够发现和确认已知与未知类型的注入漏洞。这种方式从经典的手工检测进化而来,拥有手工测试的众多优势,例如WAF避规,极小的网络痕迹和针对过滤的灵活输入。

与以往相同,这种方式依然会设法利用一些对于经验丰富的手工测试者来说十分熟悉的漏洞。作者将通过展示几千个网站的样例来分享一些有趣的发现和教训,并放出一个特定的扫描工具。最后,作者将展示这款工具如何能被继续开发,让你有更多的研究方向。

手工测试

手工测试是以人为本,对于漏洞的识别能力取决于测试者的知识储备与测试技巧,一个合格的测试者能够针对不同waf规则进行规避,也能够凭借微小的网络痕迹对一个薄弱点作针对性测试,而不是浪费大量的时间把所有的方法尝试一遍。但是与之相对的劣势也是非常明显,就是成本问题劣势

测试体量越大效率越低

对测试者能力依赖强,成本高

大家总想要获得一个能力强又高效的产品,因此又有一种模糊测试的手段产生了,也就是俗称的fuzz测试,介于完全手工与完全自动化之间,但是这毕竟还是一种高级技巧,而且测试结果的质量高低一定程度上又依赖于定制化,因此成本上来说并不算低。但同样不可否认的,这种技巧的上升空间非常之高

插件核心逻辑

判断输入是否造成了服务端输出的变化

{这样说法也许有点空洞,那就换一个说法,针对一个web的链接来说,手工测试者无法确定是否存在漏洞,那就先按照正常的逻辑获取到一个应用程序的正常响应,也就是作为一个基准响应。接着按照测试者的经验发送相关的字符信息作为探针,例如在正常请求的基础上加上一个单引号,若此刻获取到的响应内容与基准响应不同,那么就可以说明应用程序会对单引号做出反应,虽然无法代表这儿就是存在漏洞,但是可以肯定的是对于应用程序来说,单引号存在某些意义,比如应用程序就是拒绝携带单引号的输入。但是若是携带单引号的响应与基准响应相同,这就可以确定单引号是一个能够逃逸检查的字符,以此循环替换探针。}

迭代

针对插件来说,这是一个十分重要的过程,因为相比于传统扫描器直接定位漏洞是否存在,Backslash这样的插件更注重的是针对web应用行为的探测,通过对探针的不断迭代,如上就是单引号到反斜杠单引号的变换,快速忽略掉无用的输入为探测出有影响的字符串节省了大量的时间,形成一个部署探针-扫描比对-结果研究的迭代过程。

假设Backslash针对一个注入点进行探测时,首先识别的就是哪种引号的使用,因为针对一个后端逻辑来说,引号意味着闭合方式,双引号和单引号的输入是能够造成不同的影响的,接着识别的是字符的连接方式,然后识别可能的函数调用,最后发送特定的函数尝试利用。当然这些尝试并非说是完全告别了payload,而是相比于传统的测试方式,这种方式明显更为高效且更注重逻辑性

核心问题

{对于扫描的结果的探测来源于针对不同探针的响应的识别,那么核心问题也就很明显了,如何去识别呢?如果只是简单的字符串比较实际上在整个应用程序中是没什么作用的,因为应用程序本身就是一个动态的,响应中存在着动态生成的一次性令牌,时间戳,缓存甚至是对应的输入。插件作者在插件编写之初并没有很好的解决这个问题,因此插件并没有第一时间发布,而是在很久之后,通过了一种针对响应属性值计算的方式来进行判断,这种方式会针对状态码,Content-Type,HTML结构,行数,单词数,输入处理数以及关键字出现频率来作统一的计算}状态码

Content-Type

HTML结构

行数

单词数

输入处理数

关键字出现频率但这一部分的详细内容并不打算讲解,有兴趣的同学可以自行研究源码

结语

Backslash插件提出了一种新颖的扫描概念,并展示了迭代过程说明了测试者可以轻易的将一个明显的安全问题和需要多次验证的问题进行区分,而所需要做的也仅仅是针对探针灵活性的优化,或者说这个插件并非是一个漏洞扫描工具,而是针对web应用行为的探测,然后在一定程度上对结果进行聚合输出。现在web方面发展越来越迅速,各种安全机制的发展导致传统扫描器的能力逐步下降,甚至在某种程度上waf已经能够针对0day进行防御,因此对于安全产品的设计自当另辟蹊径而非只是一味的通过提高样本数量进行暴力测试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34309.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注