漏洞扫描POC和web漏洞扫描工具

文章目录

  • 说明
  • [一 POC](#一 POC)
    • [1.1 POC的核心特点与目的](#1.1 POC的核心特点与目的)
    • [1.2 生动理解POC和EXP](#1.2 生动理解POC和EXP)
    • [1.4 POC的实际应用场景](#1.4 POC的实际应用场景)
    • [1.5 POC库精选](#1.5 POC库精选)
    • [1.6 POC与EXP的关键区别](#1.6 POC与EXP的关键区别)
  • [二 XRAY](#二 XRAY)
    • [2.1 XRAY的扫描方式](#2.1 XRAY的扫描方式)
    • [2.2 RAD+XRAY](#2.2 RAD+XRAY)
    • [2.3 XRAY PoC/XPOC](#2.3 XRAY PoC/XPOC)
  • [三 Goby](#三 Goby)
  • [四 Nuclei](#四 Nuclei)

说明

  • 本文创作于学习过程中,由于相关内容在网络上已经记录的很清楚了,作者将相关内容标记出来,不再单独进行整理,希望本文对相关学习的小伙伴提供帮助!

一 POC

  • POC是"Proof of Concept"的缩写,"概念验证"。它指的是为了验证某个想法、理论或漏洞的可行性而制作的一个简短的、不完整的实现或演示。
  • 在网络安全的具体情境下,POC的核心目的非常明确:通过可复现的技术手段,实际验证某个特定安全漏洞的真实存在性、潜在危害程度以及可利用性
  • 简单来说,当一个安全研究员发现一个软件漏洞时,他/她会编写一段代码或提供一个操作步骤,来向他人(如软件开发者、其他安全人员)证明:"看,这个漏洞真的存在,并且可以这样触发它。" 这段代码或步骤就是POC。

1.1 POC的核心特点与目的

  1. 证明性而非破坏性:POC的首要目标是"证明",而不是"破坏"。它只需要成功触发漏洞,展示出漏洞可以被利用即可,通常不会包含完整的攻击链或造成实际损害的恶意代码。比如,一个POC可能只是成功让一个程序崩溃,或者读取到一个本不该被读取的文件,以此证明漏洞存在。
  2. 最小化与针对性:POC通常是"较短而不完整的实现"。它会剥离所有与验证漏洞无关的功能,只保留最核心、最关键的部分。这使得POC代码简洁、易于理解和分析,也方便其他人快速复现。
  3. 可复现性:POC的生命线。一个合格的POC必须能够让其他安全人员或开发者在自己的环境中按照相同的步骤操作,并观察到同样的结果(即漏洞被成功触发)。这种可复现性是漏洞被修复和确认的关键前提。

1.2 生动理解POC和EXP

假设你发现了一栋大楼的窗户玻璃存在质量问题,轻轻一推就会碎掉。

  • POC :你写了一份详细的报告,并附上一段视频。视频中,你用手指轻轻一推那扇特定的窗户,玻璃就应声而碎。这个视频和报告就是POC。它证明了窗户的脆弱性,但没有用大锤去砸,也没有闯入大楼。
  • EXP(Exploit,漏洞利用) :而另一个人看到了你的POC后,制作了一个可以远程发射的、精确瞄准该窗户的"弹珠枪"。这个"弹珠枪"就是EXP。它的目的就是利用这个漏洞,实现远程破坏。

1.4 POC的实际应用场景

POC在网络安全的工作流程中扮演着关键角色:

  1. 漏洞披露与研究:安全研究员在发现漏洞后,通常会编写POC来附在安全公告中,向厂商和公众证明漏洞的严重性。例如,近期广为人知的Sudo漏洞(CVE-2025-32463),研究员就公开了概念验证代码,以证明该漏洞的存在和危害。同样,Notepad++的DLL劫持漏洞(CVE-2025-56383)也有相应的POC来演示其风险。
  2. 漏洞修复:软件开发者收到漏洞报告后,会利用提供的POC来在自己的产品中复现漏洞。这能帮助他们快速定位问题根源,并验证修复补丁是否有效。
  3. 渗透测试:在进行授权的渗透测试时,测试人员会使用或编写POC,向客户直观地证明其系统存在哪些安全风险,而不是直接使用具有破坏性的EXP工具。

1.5 POC库精选

  1. Exploit-DB:一个历史悠久且权威的公开漏洞利用代码存档库,收录了大量的漏洞利用代码、安全论文和Shellcode。
  2. POChouse:一个综合性的POC与EXP仓库,常被用作HVV(攻防演练)的"弹药库",包含了大量的Nday和1day漏洞。
  3. Some-PoC-oR-ExP:个人收集与编写的各类漏洞PoC及Exp集合,覆盖范围广泛,适合安全研究人员参考和使用。
  4. Awesome-POC:一个内容丰富的漏洞POC知识库,整理了超过1000个POC,并按漏洞类型和厂商进行了分类,便于快速检索。
  5. HVV2024-POC:专注于为HVV攻防演练收集整理的漏洞EXP/POC库,目前已收录超过900个,时效性较强。

1.6 POC与EXP的关键区别

特性 POC (概念验证) EXP (漏洞利用)
核心目的 证明漏洞存在,展示其原理 利用漏洞进行攻击,获取权限或执行恶意操作
完整性 不完整,只展示触发漏洞的关键步骤 完整,通常包含完整的攻击链,如绕过防护、提权、安装后门等
行为结果 可能只是让程序崩溃、弹个计算器或读取一个文件 可能是获取服务器控制权、窃取数据、安装木马等
使用者 安全研究员、漏洞分析人员、开发者 黑客、红队队员、渗透测试人员(在授权下)
比喻 用钥匙开锁,证明这把锁能被打开 用万能钥匙开锁后,进入屋内偷东西
  • 总而言之,POC是网络安全领域中一种负责任的、用于沟通和验证的技术工具。它像是一座桥梁,连接了漏洞的发现者和修复者,是推动网络安全生态不断进步的重要基石。

二 XRAY

2.1 XRAY的扫描方式

  • XRAY扫描方式官网详细文档
  • xray的扫描方式分为被动扫描、主动扫描和服务扫描。
  • 被动扫描(Passive scanning):代理模式下的基本架构为,扫描器作为中间人,首先原样转发流量,并返回服务器响应给浏览器等客户端,通讯两端都认为自己直接与对方对话,同时记录该流量,然后修改参数并重新发送请求进行扫描。
  • 主动扫描(active scanning):爬虫模式是模拟人工去点击网页的链接,然后去分析扫描,和代理模式不同的是,爬虫不需要人工的介入,访问速度要快很多,但是注意xray 的基础爬虫不能处理 js 渲染的页面。
  • 服务扫描(Service scanning):xray 中最常见的是 web 扫描,但是 xray 将会逐渐开放服务扫描的相关能力,目前主要是服务扫描相关的 poc。老版本升级的用户请注意配置文件需要加入服务扫描的相关 poc 名字,目前只有一个 tomcat-cve-2020-1938 ajp 协议任意文件检测 poc。

2.2 RAD+XRAY

  • Rad | 开发者:xray 团队 简介 |一款专为安全扫描而生的浏览器爬虫。

  • RAD 1.0-fix

  • rad的基本使用

    bash 复制代码
    rad -t ip
  • 手动登录

    bash 复制代码
    rad -t ip -wait-login -text-output result.txt
  • 执行以上命令会自动禁用无头浏览模式,开启一个浏览器供手动登录。 在登录完毕后在命令行界面点击回车键继续爬取,并将爬取基本结果导出为文件。

  • 导出完整请求

    bash 复制代码
    rad -t http://example.com -full-text-output result.txt
  • 导出完整请求为JSON

    bash 复制代码
    rad -t http://example.com -json result.json
  • 与xray联动,:

    bash 复制代码
    # 设置上级代理为xray监听地址 运行xray
    xray webscan --listen 127.0.0.1:7777 --html-output proxy.html
    # 运行rad
    rad -t http://example.com -http-proxy 127.0.0.1:7777
  • 高级版对 rad 进行深度融合,可一键使用:

    bash 复制代码
    xray webscan --browser-crawler http://example.com --html-output vuln.html

2.3 XRAY PoC/XPOC

三 Goby

四 Nuclei

  • Nuclei是一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器。
  • nuclei-templates用于 nuclei 引擎在应用程序中查找安全漏洞。
  • Nuclei使用零误报的定制模板向目标发送请求,同时可以对主机进行批量快速扫描。Nuclei提供TCP、DNS、HTTP、FILE等各类协议的扫描,通过强大且灵活的模板,可以使用Nuclei模拟各种安全检查。

  • 首次运行 nuclei 会自动下载扫描模版 nuclei-templates,默认下载路径为 /user/nuclei-tamplates;后续若不指定扫描模版,将使用全部模版进行扫描。
  1. 扫描单个目标

    bash 复制代码
    nuclei -u <url>
  2. 扫描多个目标:通过文本文件(每行一个 URL)批量扫描:

    bash 复制代码
    nuclei -l <list.txt>
  3. 指定模版扫描:可指定特定模版文件模版目录 进行定向扫描:

    bash 复制代码
    nuclei -u <url> -t <poc.yaml/poc_dir>
  4. 扫描结果输出

  • 输出到文本文件:

    bash 复制代码
    nuclei -u <url> -o <results.txt>
  • 输出到 JSON 文件(并忽略重复结果):

    bash 复制代码
    nuclei -u <url> -o <results.json> -json -irr
  • 调试模板

    bash 复制代码
    nuclei -u <url> -debug -t <poc.yaml>
  • 模板编写

相关推荐
楚韵天工19 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物
忧郁的橙子.20 小时前
十六、kubernetes 1.29 之 集群安全机制
安全·容器·kubernetes
竹等寒20 小时前
Linux-网络安全私房菜(二)
linux·服务器·web安全
疯狂吧小飞牛21 小时前
ip rule 策略路由
linux·网络·tcp/ip·运维开发
hour_go21 小时前
TCP/IP协议相关知识点
网络·笔记·网络协议·tcp/ip
Arva .1 天前
WebSocket实现网站点赞通知
网络·websocket·网络协议
雪兽软件1 天前
SaaS 安全是什么以及如何管理风险
网络·安全
纸带1 天前
USB -- SET_ADDRESS or --SET_ADDRESS or --SET_CONFIGURATION or --SET_INTERFACE
网络
white-persist1 天前
CSRF 漏洞全解析:从原理到实战
网络·python·安全·web安全·网络安全·系统安全·csrf
嫄码1 天前
TCP/IP 四层模型
网络·网络协议·tcp/ip