0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Web漏洞靶场搭建(OWASP Benchmark)

秃头也爱科技 来源:秃头也爱科技 作者:秃头也爱科技 2022-10-13 15:47 次阅读

Benchmark)

渗透测试切记纸上谈兵,学习渗透测试知识的过程中,我们通常需要一个包含漏洞的测试环境来进行训练。而在非授权情况下,对于网站进行渗透测试攻击,是触及法律法规的,所以我们常常需要自己搭建一个漏洞靶场,避免直接对公网非授权目标进行测试。

漏洞靶场,不仅可以帮助我们锻炼渗透测试能力、可以帮助我们分析漏洞形成机理、更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果

本次靶场选择 OWASP Benchmark | OWASP Foundation 靶场。Owasp benchmark 旨在评估安全测试工具的能力(准确率、覆盖度、扫描速度等等),量化安全测试工具的扫描能力,从而更好得比较各个安全工具优缺点。

测试用例

目前 v1.2 版本包含了近3000个漏洞,覆盖常见的SQL注入、命令注入、路径遍历、XSS,以及众多安全编码类的问题

IMG_256

每个漏洞包含多种漏洞场景,对于命令注入来说,可以校验测试工具在:

  • 多种注入位置:param/data/form-data/json/mut/header/cookie/
  • 多种调用场景:ProcessBuilder/RuntimeExec
  • 不同拼接方式:可控变量作为独立的命令拼接、仅作为ls/echo 的参数
  • 复杂业务流程: if/else/switch 导致无法进入漏洞位置(假漏洞场景)
    等等场景下的表现。

评分标准

Benchmark 可以根据测试工具的扫描报告为测试工具进行评分。Benchmark靶场的所有漏洞信息储存在BenchmarkJava/expectedresults-1.2.csv at master · OWASP-Benchmark/BenchmarkJava ,此文件用于标识每个场景下的漏洞信息。Benchmark解析测试工具的扫描报告再与预期结果进行对比,从而为每个工具进行打分。

对于测试工具来说,我们期望他能够

  • 发现所有的真正是问题的漏洞 即 True Positive,TP指数,检出率尽可能高
  • 能够忽略所有非问题的漏洞 即False Positive,FP指数,误报率尽可能低,Benchmark 将以TP,FP为坐标轴绘制一张图,当点越靠近左上方时,认为测试功能能力更优。

IMG_257

Benchmark最后得分参考约登指数给出,用以下公式计算分值,得分越靠近 11 表明测试工具能力越强。

Sensitivity+Specificity-1=TP+(1-FP)-1=TP-FP*Sensitivity*+*Specificity*−1=*TP*+(1−*FP*)−1=*TP*−*FP*

扫描报告解析

Benchmark目前支持大部分主流测试工具,详见 OWASP Benchmark | OWASP Foundation 页面。

当评估测试工具时,可以自行扩展 OWASP-Benchmark/BenchmarkUtils: OWASP Benchmark Project Utilities - Provides scorecard generation and crawling tools for Benchmark style test suites. 中的 org.owasp.benchmarkutils.score.parsers.Reader 类

  • 重写 parse方法:用于解析报告内容
  • 重写canRead 方法:用于判断解析哪种报告文件

解析报告中的 url/cwe 等关键信息,实现自动打分。

Demo

package org.owasp.benchmark.score.parsers;  
  import org.dom4j.Document;  import org.dom4j.Element;  import org.dom4j.io.SAXReader;  
  import java.io.File;  import java.util.List;  import java.util.regex.Matcher;  import java.util.regex.Pattern;  
  public class SecScanReader extends Reader {  
    private static final String NUMBER_PATTERN = "BenchmarkTest(\\d+)";  
    private static Pattern pattern;  
  
    public SecScanReader() {  
        pattern = Pattern.compile(NUMBER_PATTERN);  
    }  

	public boolean canRead(ResultFile resultFile) {
		return resultFile.filename().endsWith(".xml") && resultFile.xmlRootNodeName().equals("XXXXXX");
	}

    public TestResults parse(File file) throws Exception {  
        TestResults tr = new TestResults("XXXXXX", true, TestResults.ToolType.DAST);  
        for (Object obj : issues) {  
			// .....
			TestCaseResult tcr = new TestCaseResult();  
			tcr.setCategory("XSS");  
			tcr.setCWE(cweLookup(13));
			tcr.setNumber(0001);
            tr.put(tcr);  
        }  
        return tr;  
    }  
  
    public static int cweLookup(String pluginId) {  
        switch (pluginId) {  
            default: return 0;  
        }  
    }  
}

生成评分报告

$  mvn validate -Pbenchmarkscore -Dexec.args="expectedresults-1.2.csv results"

部署运行

$ git clone https://github.com/OWASP-Benchmark/BenchmarkJava
$ cd benchmark
$ mvn compile   (This compiles it)
$ runRemoteAccessibleBenchmark.sh/.bat - This compiles and runs it.

runRemoteAccessibleBenchmark 脚本用于开启可被远程访问的Benchmark Web应用。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1243

    浏览量

    68760
  • SQL
    SQL
    +关注

    关注

    1

    文章

    742

    浏览量

    43604
  • 代码
    +关注

    关注

    30

    文章

    4601

    浏览量

    67342
收藏 人收藏

    评论

    相关推荐

    快速搭建嵌入式Web服务器

    快速搭建嵌入式Web服务器
    发表于 08-02 00:08

    web渗透的测试流程

    ,进行漏洞探测环节。探测网站是否存在一些常见的Web漏洞  步骤:  1.用扫描工具:awvs,IBM appscan、Owasp-Zap、Nessus等。PS:扫描器可能会对网站构成
    发表于 01-29 17:27

    怎么设计一款基于渗透性测试的Web漏洞扫描系统?

    Web漏洞扫描原理是什么?怎么设计一款基于渗透性测试的Web漏洞扫描系统?
    发表于 05-10 06:07

    ATTO Disk Benchmark 下载

    ATTO Disk Benchmark
    发表于 03-21 21:24 39次下载
    ATTO Disk <b class='flag-5'>Benchmark</b> 下载

    教你linux搭建web服务器

    教你linux搭建web服务器和大家分享了一份配置文档,希望对您用linux搭建web服务器有所启发。
    发表于 12-28 14:18 8736次阅读

    基于Scrapy的爬虫框架的Web应用程序漏洞检测方法

    随着Web应用不断的发展,随之而产生的包括XSS在内的各种安全漏洞也越来越多。今天,XSS传统防御技术的缺陷已经越来越多地显现,例如防御种类单一、防御强度低、防御手段落后等,这就迫切需要
    发表于 12-07 09:48 2次下载
    基于Scrapy的爬虫框架的<b class='flag-5'>Web</b>应用程序<b class='flag-5'>漏洞</b>检测方法

    WEB测试环境搭建和测试方法

    本文主要讲述了web应用系统的搭建测试环境和web测试方法,在测试过程中,有的仅需要手动测试的,有的需要自动化测试工具的帮助,所以web系统的测试要求测试人员有很深的自动化测试技术。
    的头像 发表于 01-31 17:07 1.8w次阅读

    搭建测试环境常用linux命令_linux下web测试环境的搭建

    本文主要介绍的是搭建测试环境常用的一些linux命令以及linux下web测试环境的搭建
    的头像 发表于 01-31 18:41 1.2w次阅读
    <b class='flag-5'>搭建</b>测试环境常用linux命令_linux下<b class='flag-5'>web</b>测试环境的<b class='flag-5'>搭建</b>

    德国油罐监控设备存在严重漏洞 黑客易访问基于web的配置界面

    一家德国的油罐测量系统制造商的部分产品存在严重漏洞,黑客易访问基于web的配置界面。
    的头像 发表于 06-14 14:42 1999次阅读

    目前常见的五种物联网应用类型 需要警惕的10大物联网风险

    根据2018年开放式Web应用程序安全项目(OWASP)IoT Top 10,以下是10大物联网漏洞
    发表于 05-10 12:08 3216次阅读

    linux如何搭建web服务器

    linux搭建web服务器流程如下
    发表于 06-08 09:09 8923次阅读
    linux如何<b class='flag-5'>搭建</b><b class='flag-5'>web</b>服务器

    检测验证Java Web程序的SQLIA漏洞解决方法

    SQLA漏洞破坏Web后台数据库的完整性,-直是Web应用安全的主要威胁。提出一种检测和验证ava Web程序的 SQLIA漏洞的解决方案,
    发表于 04-02 16:05 19次下载
    检测验证Java <b class='flag-5'>Web</b>程序的SQLIA<b class='flag-5'>漏洞</b>解决方法

    Web漏洞靶场搭建-wavsep

    渗透测试切记纸上谈兵,学习渗透测试知识的过程中,我们通常需要一个包含漏洞的测试环境来进行训练。而在非授权情况下,对于网站进行渗透测试攻击,是触及法律法规的,所以我们常常需要自己搭建一个漏洞靶场
    的头像 发表于 10-13 15:35 894次阅读

    一个集成漏洞库介绍

    一个知识库,集成了Vulhub、Peiqi、EdgeSecurity、0sec、Wooyun等开源漏洞库,涵盖OA、CMS、开发框架、网络设备、开发语言、操作系统、Web应用、Web服务器、应用服务器等多种
    的头像 发表于 11-21 09:22 1538次阅读

    【Tools】漏洞扫描工具DongTai

    DongTai是一款交互式应用安全测试(IAST)产品,支持检测OWASP WEB TOP 10漏洞、多请求相关漏洞(包括逻辑漏洞、未授权访
    的头像 发表于 11-25 10:35 650次阅读