Старый 04.11.2014, 22:04   #3321
b1ng0
 
Регистрация: 04.11.2014
Сообщений: 3
Репутация: 0
По умолчанию

Цитата:
Сообщение от omen666 Посмотреть сообщение
Жаль, но SSI работать не пожелал... Есть ли еще варианты?
b1ng0 вне форума   Ответить с цитированием
Старый 15.11.2014, 14:52   #3322
Chelios
 
Регистрация: 05.07.2010
Сообщений: 42
Репутация: 14
По умолчанию

часто бывает в джумле стоит какой-то модуль для защиты от sql инъекций. определил что реагирует на "jos". если оно встречается, то появляется:
Цитата:
403: Access Forbidden
Attempted SQL injection in REQUEST_URI
пробовал шаманить - ничего не получилось. мб подскажет кто как можно обойти ?)
Chelios вне форума   Ответить с цитированием
Старый 15.11.2014, 19:25   #3323
omen666
 
Регистрация: 06.09.2014
Сообщений: 64
Репутация: 9
По умолчанию

Цитата:
Сообщение от Chelios Посмотреть сообщение
часто бывает в джумле стоит какой-то модуль для защиты от sql инъекций. определил что реагирует на "jos". если оно встречается, то появляется:

пробовал шаманить - ничего не получилось. мб подскажет кто как можно обойти ?)
database table prefix #__
omen666 вне форума   Ответить с цитированием
Старый 18.11.2014, 06:32   #3324
zuzzz
 
Регистрация: 24.02.2011
Сообщений: 75
Репутация: 7
По умолчанию

в IPB есть код запрещающий выполнение sql запросов, которые содержат подзапросы. Т.е. проверяется слово union и select. Можно ли эту проверку обмануть при sql инъекции?

Код:
				
if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
	$this->throwFatalError( "You are not allowed to use comments in your SQL query..." );
	return false;
}

if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
	$this->throwFatalError( "UNION query joins are not allowed..." );
	return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
	if ( count( $matches ) > 1 )
	{
		$this->throwFatalError( "SUB SELECT query joins are not allowed..." );
		return false;
	}
}
zuzzz вне форума   Ответить с цитированием
Старый 18.11.2014, 07:53   #3325
m0Hze
 
Аватар для m0Hze
 
Регистрация: 05.07.2010
Сообщений: 326
Репутация: 129
По умолчанию

Цитата:
Сообщение от zuzzz Посмотреть сообщение
в IPB есть код запрещающий выполнение sql запросов, которые содержат подзапросы. Т.е. проверяется слово union и select. Можно ли эту проверку обмануть при sql инъекции?

Код:
				
if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
	$this->throwFatalError( "You are not allowed to use comments in your SQL query..." );
	return false;
}

if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
	$this->throwFatalError( "UNION query joins are not allowed..." );
	return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
	if ( count( $matches ) > 1 )
	{
		$this->throwFatalError( "SUB SELECT query joins are not allowed..." );
		return false;
	}
}
Помоему, только первый запрос регистро независимый (что смешно), а проверки на подзапросы в таком случае обходятся простым регистром.
__________________
multi-vpn.biz - Первый VPN на Эллиптических кривых со скоростью света.
m0Hze вне форума   Ответить с цитированием
Старый 18.11.2014, 08:20   #3326
omen666
 
Регистрация: 06.09.2014
Сообщений: 64
Репутация: 9
По умолчанию

Цитата:
Сообщение от zuzzz Посмотреть сообщение
в IPB есть код запрещающий выполнение sql запросов, которые содержат подзапросы. Т.е. проверяется слово union и select. Можно ли эту проверку обмануть при sql инъекции?

Код:
				
if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
	$this->throwFatalError( "You are not allowed to use comments in your SQL query..." );
	return false;
}

if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
	$this->throwFatalError( "UNION query joins are not allowed..." );
	return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
	if ( count( $matches ) > 1 )
	{
		$this->throwFatalError( "SUB SELECT query joins are not allowed..." );
		return false;
	}
}
m0Hze дело говорит, только в первом шаблоне регистронезависимое сравнение с модификатором i.
PHP код:
$_tmp 'SELECT 1 UNION SELECT 2';
                
if ( 
preg_match"#(?:/\*|\*/)#i"$_tmp ) )
{
    echo 
'You are not allowed to use comments in your SQL query...';
        
//$this->throwFatalError( "You are not allowed to use comments in your SQL query..." );
    //return false;
}

if ( 
preg_match"#[^_a-zA-Z]union[^_a-zA-Z]#s"$_tmp ) )
{
    echo 
'UNION query joins are not allowed...';
        
//$this->throwFatalError( "UNION query joins are not allowed..." );
    //return false;
}
else if ( 
preg_match_all"#[^_a-zA-Z](select)[^_a-zA-Z]#s"$_tmp$matches ) )
{
    if ( 
count$matches ) > )
    {
        echo 
'SUB SELECT query joins are not allowed...';
                
//$this->throwFatalError( "SUB SELECT query joins are not allowed..." );
        //return false;
    
}

run php online

Последний раз редактировалось omen666; 18.11.2014 в 08:26..
omen666 вне форума   Ответить с цитированием
Старый 18.11.2014, 10:17   #3327
zuzzz
 
Регистрация: 24.02.2011
Сообщений: 75
Репутация: 7
По умолчанию

omen666, m0Hze
Извиняюсь, я не заметил, что перед проверкой еще такая строка: $_tmp = strtolower( $this->_removeAllQuotes($the_query) ); Sql приводится к нижнему регистру.
В общем не поможет, и я пробовал.

и того получается:
Код:
$_tmp = strtolower( $this->_removeAllQuotes($the_query) );

if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
	$this->throwFatalError( "You are not allowed to use comments in your SQL query..." );
	return false;
}

if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
	$this->throwFatalError( "UNION query joins are not allowed..." );
	return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
	if ( count( $matches ) > 1 )
	{
		$this->throwFatalError( "SUB SELECT query joins are not allowed..." );
		return false;
	}
}

Последний раз редактировалось zuzzz; 18.11.2014 в 10:20..
zuzzz вне форума   Ответить с цитированием
Старый 19.11.2014, 06:22   #3328
ncroot
 
Регистрация: 19.02.2014
Сообщений: 8
Репутация: -1
По умолчанию

чем читать .git/index? ужасно неудобное чтиво, если случается натыкаться
ncroot вне форума   Ответить с цитированием
Старый 19.11.2014, 09:41   #3329
Matthew
 
Аватар для Matthew
 
Регистрация: 14.06.2011
Сообщений: 35
Репутация: 3
По умолчанию

Если ничего не закрыто (индекс например) то через git clone http://hostname/.git/
Если индекс есть но не удаётся предыдущим методом, то выкачиваем рекурсивно через wget и уже на локалке смотрим историю гита и прочие интересности.

Кроме того есть такая полезная софтинка: https://github.com/evilpacket/DVCS-Pillage
Matthew вне форума   Ответить с цитированием
Старый 19.11.2014, 19:02   #3330
romashka_sky
 
Регистрация: 01.10.2011
Сообщений: 33
Репутация: 8
По умолчанию

Цитата:
Сообщение от ncroot Посмотреть сообщение
чем читать .git/index? ужасно неудобное чтиво, если случается натыкаться
https://rdot.org/forum/showthread.php?p=32395#post32395
romashka_sky вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot