安全工具自动化CRLF漏洞检测工具

Posted Topdayplus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全工具自动化CRLF漏洞检测工具相关的知识,希望对你有一定的参考价值。

0x01 CRLF注入漏洞

回车换行(CRLF)注入攻击是一种当用户将CRLF字符插入到应用中而触发漏洞的攻击技巧。CRLF字符(%0d%0a)在许多互联网协议中表示行的结束,包括html,该字符解码后即为\\ r\\ n。这些字符可以被用来表示换行符,并且当该字符与HTTP协议请求和响应的头部一起联用时就有可能会出现各种各样的漏洞,包括http请求走私(HTTP RequestSmuggling)和http响应拆分(HTTP Response Splitting)。

一般有两种应用场景:

1、注入请求头导致html解析

2、注入操作日志导致后台日志记录混淆,比如恶意换行

0x02 CRLF注入检测原理

简单来讲就是在构造请求时,加上%0d%0a字符,验证后续代码能否被单独解析执行,如下测试代码:

GET url=https://www.test.com%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>/
Host:xxx

如果存在CRLF注入漏洞会被解析为:

GET url=https://www.test.com
<img src=1 onerror=alert(/xss/)>/
Host:xxx

从而造成XSS

0x03 CRLF注入自动化检测

自动化检测工具地址:https://github.com/Nefcore/CRLFsuite

$ git clone https://github.com/Nefcore/CRLFsuite.git
$ cd CRLFsuite
$ sudo python3 setup.py install
$ crlfsuite -h

用法:

单网址扫描:
$ crlfsuite -u "http://testphp.vulnweb.com"

多个 URL 扫描::
$ crlfsuite -i targets.txt

从标准输入:
$ subfinder -d google.com -silent | httpx -silent | crlfsuite -s

指定 cookie扫描:
$ crlfsuite -u "http://testphp.vulnweb.com" --cookies "key=val; newkey=newval"

使用 POST 方法:	
$ crlfsuite -i targets.txt -m POST -d "key=val&newkey=newval"

关注公众号:白帽学子,回复0620获取工具包

微软开源模糊测试工具OneFuzz

微软开源项目OneFuzz可以自动检测软件漏洞,帮助规避潜在安全问题。
微软发布名为Project OneFuzz的开源安全工具。作为Azure的测试框架,该工具将多个软件安全测试工具整合在一起,可以自动检测崩溃和漏洞,避免潜在安全问题。
谷歌的开源模糊测试机器人,已帮助其检测了自身软件和其他开源软件项目中的成千上万个漏洞。如今,微软也放出了自己应对这一软件开发人员难题的答案。 
与Visual Studio Code、.NET Core和扩展了JavaScript的TypeScript编程语言等微软开源项目类似,Project OneFuzzis也可在遵从MIT开源许可的前提下从GitHub获取。
微软将Project OneFuzz描述为“用于Azure的可扩展模糊测试框架”。 
模糊测试本质上是不断向软件抛出随机代码,直至软件崩溃,以此暴露出软件潜藏的安全和性能问题。 
谷歌一直大力倡导此项技术,敦促程序员和安全研究人员采用模糊测试实用程序和技术。其开源模糊测试器包括OSS-Fuzz和Cluster Fuzz。 
开发人员可从GitHub下载OSS-Fuzz,将其用于自身代码。一些开源项目也可以云服务的方式使用此模糊测试器。 
微软此前宣称,将以自动化开源模糊测试工具,代替其现有软件测试工具集Microsoft Security and Risk Detection。 
微软还表示,该工具为所有软件开发公司解决另一花费高昂的难题,并感谢谷歌开拓了此项技术。 
微软用于探查Edge、Windows和该公司其他产品的测试框架也是OneFuzz。该工具已帮助微软强化了Windows 10的安全。 
微软安全部门首席安全软件工程主管Justin Campbell,以及特殊项目管理高级总监Mike Walker称:“模糊测试是提高本机代码安全性和可靠性的高效方法,是发现和消除代价高昂的可利用安全漏洞的黄金标准。” 
“传统上,模糊测试对于开发人员来说是一把双刃剑:软件开发生命周期必备,能高效发现可操作漏洞,但在利用、执行和从中提取信息方面却非常复杂。 
“这种复杂性要求配置专门的安全工程团队来构建和运行模糊测试功能,造成模糊测试非常有用却又十分昂贵的局面。让开发人员能够执行模糊测试,相当于提前了漏洞发现在开发周期中的位置,同时解放了安全工程团队,让他们得以主动出击而不是疲于应付。” 
正如微软指出的,“近期编译器领域的发展,由谷歌引领,在LLVM中开源的那些,改变了模糊测试原生代码中涉及的安全工程任务。” 
微软宣称,这些发展让开发人员更容易处理此前的附加任务,将这些过程融入持续构建系统。其中就包括崩溃检测,这项任务之前是通过Electric Fence等工具附加的。如今此类工作可内置于asan。 
iDNA、Dynamo Rio和Pin等此前的附加工具,如今也内置于sancov。
Campbell和Walker指出:“输入控制曾经通过定制I/O控制完成,如今也内置于libfuzzer的LLVMFuzzerTestOneInput函数原型了。” 
微软还在向Visual Studio添加对这些功能的实验性支持,以便能用编译器构建测试二进制文件,让开发人员能够无需将之置入持续集成(CI)或持续开发(CD)流水线。这么做还可以帮助开发人员在云端扩展模糊测试工作负载。  
关键词:开源测试;模糊测试;

以上是关于安全工具自动化CRLF漏洞检测工具的主要内容,如果未能解决你的问题,请参考以下文章

微软开源模糊测试工具OneFuzz

高危安全通告SaltStack 多个高危漏洞

网络安全科普 | 用于渗透测试的10种漏洞扫描工具

如何自动捕捉反序列化漏洞

安全牛学习笔记SQLMAP- 自动注入

Web应用安全审计工具WATOBO