,前面的文章中介绍了nuclei的基础使用方法,可以参考文章:,POC模拟攻击利器——Nuclei入门(一),接下来我重点讲解一下nuclei中的三个概念,Workflows、Mathcer和Extractors。这些内容将有助于帮助大家编写更为复杂和高效的检测脚本!,
,Workflows允许用户自定义模板的执行顺序,这是使用nuclei最高效的方式,官方推荐用户使用自定义Workflows进而缩短扫描时间,提升扫描效率!,例如,定义workflow 扫描files目录下如下yaml:,首先确认springboot-detect.yaml是否正确执行,如果OK,则运行subtemplates下的template,实例如下:,运行workflows。,nuclei -list http_urls.txt -w workflows/my-workflow.yaml。,Mathcer顾明思议,就是提供了一些规则,来对响应结果进行比较匹配!常用有六种类型的。,mathcer,如下所示:,例如想对响应码进行比较匹配,写法如下:,想对响应码进行复杂的匹配时,可以使用dsl。,上个实例的含义是匹配响应体长度小于1024 并且状态码是200。,判断大写的body中是否包括cookie的md5sum。,使用condition: and\or 可以对多个条件进行匹配,默认多个条件是and的关系。,官方实例如下:,详情请参考:,https://nuclei.projectdiscovery.io/templating-guide/operators/matchers/。,Extractors 也是对结果进行校验,与matchers相比,它可以把满足规则的内容显示出来,同样他也有不同类型的Extractors,如下所示:,1. regex - Extract data from response based on a Regular Expression。,2. kval - Extract key: value/key=value formatted data from Response Header/Cookie。,3. json - Extract data from JSON based response in JQ like syntax。,4. xpath - Extract xpath based data from HTML Response。,例如:,5. dsl - Extract data from the response based on a DSL expressions。,详情请参考:,https://nuclei.projectdiscovery.io/templating-guide/operators/extractors/。,由于使用nuclei时间尚浅,关于Extractors和Matchers,个人感觉使用差别不是很大!,二者都是对结果的校验,与matchers相比,Extractors它可以把满足规则的内容显示出来!如果大家需要编写复杂的响应校验,那么就需要花时间多研究dsl了。,当使用了nuclei一段时间后,个人觉得其实使用nuclei最有价值的就是里面各种template,我们可以查看各个template的脚本来学习攻击方法,而且还可以根据里面的reference 来查看漏洞的详情,这个特别有助于安全知识的相关积累!至于攻击请求的发送,这个其实就容易很多了,我们是否使用nuclei其实都无所谓的,举个简单的例子,关于CVE-2020-9484的 yaml脚本定义如下:,这个脚本中,最容易的可能就是requests:部分攻击脚本代码,我们用jmeter 或者自己写代码的方式完全可以轻松模拟!而description:部分以及reference:部分才是我们需要重点研究的对象!也是我们深入理解poc攻击的最佳实例!
© 版权声明
文章版权归作者所有,未经允许请勿转载。