0.1.0(2024-07-19)

更新日志

注意:本次升级涉及较大配置文件变动。推荐在备份好原配置文件后删除旧文件,并根据新的 example 配置文件重新编写配置。如果未进行变更,系统会将配置文件进行备份,使用默认配置进行扫描。

修复问题

  1. 修复 Ctrl-C 无法中断扫描的问题
    • 修复了在扫描过程中按 Ctrl-C 无法中断操作的问题,提升用户体验。

优化改进

  1. 优化 debug 输出内容

    • 改进了调试信息的输出格式,使信息更加明确和美观,便于调试和排查问题。
  2. 提高扫描性能,降低内存占用

    • 修复 go html 库的 maxbuf 配置未导出导致的可能存在的内存溢出问题。
    • 为响应数据的图标和标题增加了缓存机制,提升处理效率。
    • 增加 HTML 解析的最大长度限制,防止解析过长数据导致的问题。
    • 修复上游正则库中的垃圾回收(GC)问题,提升系统稳定性。
    • 优化插件执行效率,使扫描过程更为高效。
    • 优化缓存机制,减少内存使用量。

新增功能

  1. 新增 example 配置文件,减少非常用配置变更带来的冲突问题

    • 新版本 xray 2.0 系列工具会创建一个 example 文件,不再创建默认配置文件。用户可以复制 example 文件并去掉 example 后缀,然后修改其中内容。
  2. YAML 插件变化

    • 新增 print 函数:方便在调试场景下打印信息。
    • 新增 uuid 函数:支持生成随机的 UUID。
    • 新增 format 函数:支持格式化字符串,可以通过指定对齐字符、前缀和步进参数来调整字符串的显示样式。
    • 新增 bload 函数:支持将字符串数据按照特定编码规则转换为字节序列。
    • 新增 gzip 函数:支持对字符串或字节序列数据进行 GZIP 压缩。
    • 新增 decToHex 函数:支持将十进制转换为十六进制。
    • 在 YAML 插件中,定义变量时,下划线开头的变量将不会输出:
      • 这样在输出时,JSON 中不会包含某些不希望输出的变量值。
    • 增强 YAML 插件的鲁棒性,支持在函数中填写不同数据类型。所有只能填写字符串或字节的数据项,两者都可以填写,不再报错。
    • 支持函数调用和方法调用两种方式,即 func(v1,v2)v1.func(v2) 均可,不再报错。
    • 修复 icon 函数,使其行为逻辑与 getIconContent 函数保持一致。
    • udp/tcp的request支持获取addrType类型的参数
  3. 支持在未配置的情况下调用 dnslog.cn 进行漏洞检测

    • 新增对 dnslog.cn 的支持,即使未进行相关配置也能使用该服务进行漏洞检测。

其他改进

  1. 修复缓存和不合理的超时配置导致的扫描结果不稳定问题

    • 改进缓存机制和超时配置,解决因配置不当导致的扫描结果不稳定问题。
  2. 为 group 命令添加 path 约定

    • group 命令添加路径约定,以便使用 group 文件的相对路径。在 group 中使用 {{path}} 将用 group 文件本身的路径替换该内容。
  3. 新特性:多目标输入支持多个 -t 参数

    • 取消多目标输入时使用逗号分隔的方式,改为支持以多个 -t 输入多个目标,因为 URL 中可能存在逗号,避免冲突。

0.0.8(2023-08-11)

新增特性

  1. 新增QPS参数配置

修复与优化

  1. 修复反连平台存在的问题
  2. 优化服务识别结果展示
  3. 修复yaml插件超时相关配置不生效的问题
  4. 优化list命令,缩短md5展示长度

0.0.7(2023-06-21)

新增特性

支持在配置文件中配置自定义的全局header

例如:

  http-client:
    # ↱自定义全局http请求头: 为发出的所有数据包带上指定的自定义请求头
    headers: {
      test: test
    }

0.0.6(2023-06-16)

问题修复

修复list等命令报错的问题

0.0.5(2023-06-16)

新增特性

  1. 新增对多种目标文件格式的支持:

    -i 参数支持自动识别文件类型并提取扫描目标

    • 支持 CSV / Excel 格式自动提取扫描目标
    • 支持将任意文件视为文本提取扫描目标
    • 支持对 zip 包中的文件自动识别扫描目标(识别其中可解析的 文本/CSV/Excel 格式)。

    例:

    xpoc -i target.txt
    xpoc -i target.csv
    xpoc -i target.xlsx
    xpoc -i target.zip
    
  2. 简化升级命令,执行 xpoc up 即可升级到最新版本,升级自身时也会同步更新插件。

  3. 添加默认的扫描端口: 80,443,8080,8443,8888,8000,9090

    输入目标为IP或域名且未指定扫描端口时会进行对这些端口的探测。 (需删除当前配置文件,重新新生成配置后生效)默认端口可在配置文件中通过tcp_ports参数编辑。

  4. 降低默认的指纹识别强度,加快扫描进度。

    (需删除当前配置文件,重新新生成配置后生效)默认的指纹识别强度可在配置文件中通过max_rarity参数编辑。

修复与优化

  1. 优化策略文件加载,自定义策略自动继承全局命令行配置。

  2. 修复目标文件中存在空行会解析错误的问题。

0.0.4(2023-05-30)

新增特性

  1. 新增-v参数,可以打印当前情况下会执行的插件,可用于检查策略是否符合预期。

    例:xpoc -v 可打印默认策略下会执行的扫描插件。

  2. 优化命令行体验,可在任意位置使用-h,-help参数打印帮助信息。

  3. 优化命令行体验,目标可以在参数之前输入,多个目标可用空格或’,‘进行分割。

    例:xpoc testtest.fun -p 80,443

修复与优化

  • 优化升级检查功能
  • 修复调度引擎中的问题
  • 升级YAML PoC引擎

0.0.3(2023-05-25)

新增特性

简化默认参数和部分命令的使用

  • xpoc -t example.com 可简化为 xpoc example.com
  • xpoc add -f ./myplugin.yaml 可简化为 xpoc add ./myplugin.yaml
  • xpoc pull -id pluginID 可简化为 xpoc pull pluginID

注意:需要删除当前配置文件,重新启动,自动生成新配置后方可生效

或在配置文件 “flag” 配置中,对希望缺省的参数值手工添加“,default”配置,如

    util-target-split:
        required_targets: t,default

Tips

  • 默认的配置文件位于 $HOME/.xray/xpoc-config.yaml
  • -c 参数用于指定特定的配置文件

0.0.2(2023-05-24)

1. 新增特性

  • add 命令支持glob语法,可以通过xpoc add -f ./plugin-path 的方式添加插件到插件仓库中,默认条件下会自动加载执行
  • -r (-run) 参数支持glob语法,可通过glob语法过滤插件
  • 域名目标支持通过-p参数指定端口扫描
  • 新增get404Path函数,详情请见函数介绍

2. 修复问题

  • 结果导出选项提示错误的问题,使用-o result.json 或-o result.html 即可导出对应格式的报告。#2 #3 #5
  • 修复部分情况下windows平台下插件加载报错的问题 #2
  • 修复部分情况下windows平台下启动阶段崩溃的问题

3. Tips

  • -r (-run) 参数用于执行指定插件,多个插件间’,‘分割 支持glob语法,一般用于测试插件或过滤插件(常用)
  • -e (-enable) 参数用于单次扫描添加插件,在默认策略(全量探测)基础上增加本地插件,支持glob语法

0.0.1(2023-05-24)

功能介绍

  1. 拉取所有云端POC并扫描指定目标

    • ./xpoc -t https://example.com -html result.html
  2. 查看所有云端的POC

    • ./xpoc list -a
  3. 批量扫描

    • ./xpoc < targets.txt
    • cat targets.txt | ./xpoc
    • ./xpoc -i targets.txt