Старый 08.08.2016, 03:49   #3561
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

Backconnect
profexer вне форума   Ответить с цитированием
Старый 14.09.2016, 02:09   #3562
Hailstorm
 
Регистрация: 05.01.2015
Сообщений: 2
Репутация: 0
По умолчанию

Имеется path fragment time based sql инъекция.
Цитата:
https://site.com/id/if(now()%3dsysdate()%2csleep(0)%2c0)/*'XOR(if(now()%3dsysdate()%2csleep(0)%2c0))OR'%22X OR(if(now()%3dsysdate()%2csleep(0)%2c0))OR%22*//site_id/225/show
как работать с ней через sqlmap? вставлял * между "id/*/site_id", так же ставил туда валидное значение "id/234*/site_id", но sqlmap в упор не видит
Hailstorm вне форума   Ответить с цитированием
Старый 14.09.2016, 12:24   #3563
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

Цитата:
Сообщение от Hailstorm Посмотреть сообщение
Имеется path fragment time based sql инъекция.

как работать с ней через sqlmap? вставлял * между "id/*/site_id", так же ставил туда валидное значение "id/234*/site_id", но sqlmap в упор не видит
пропусти sqlmap через бурп, а там подменяй все параметры как надо. SQLmap'у в принципе достаточно указать ?a=sqli, а в бурпе все менять, если тебе влом писать свою проксю
__________________
Jokester: Ок, с тобой проще согласиться чем переубедить. :)
HeartLESS вне форума   Ответить с цитированием
Старый 17.09.2016, 00:05   #3564
Ravenous
 
Аватар для Ravenous
 
Регистрация: 14.07.2012
Сообщений: 64
Репутация: 1
По умолчанию

Может кто-нибудь поделится раскрытием пути для BITRIX и Joomla 2.5 (возможно также в популярных расширениях) ?
В сети нашел только неактуальное это
Цитата:
http://host/bitrix/templates/.default/subscribe/subscr_form.php
http://host /bitrix/php_interface/dbquery_error.php
Ravenous вне форума   Ответить с цитированием
Старый 29.09.2016, 17:22   #3565
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

PHP выступает в роли FTP клиента, есть возможност инициировать соединение на подконтрольный хост. Хост, имя юзера и пароль под контролем, порт захардкожен на 21.

Существуют ли в природе атаки вида Rogue-MySql-Server для FTP? Что интересного можно полистать помимо RFC 959?
crlf вне форума   Ответить с цитированием
Старый 16.10.2016, 23:33   #3566
preg_match
 
Регистрация: 16.10.2016
Сообщений: 1
Репутация: 0
По умолчанию

Друзья, прошу помощи или совета в одной очень нестандартной SQL иньекции.
Имеем MySql иньекцию (вместе с выводом mysql_error ошибки) приблизительно в таком запросе:
Код:
select data from table where (uslovie like '%SQL_inj_where%') AND (uslovie2==2)
Параметр, который попадает в SQL, фильтрует определенные символы:
Код:
()./*="$ пробел
Все остальные спецсимволы разрешены.
В этом фильтре и заключается вся сложность. Пробел удаётся заменить на %0A и оно прокатывает, а точка, слеш и знак равенства не являются критическими, но вот с фильтрацией скобок () и начинается самый хардкор.
Скобки обойти не получается через %28%29 (или %2528%2529), другие варианты попытаться внедрить эти самые скобки мне не известны.
Из за невозможности использования скобок, по всей вероятности эту SQL иньекцию нельзя крутить через "error based" вектор, вариантов я не нашел, соответственно этот вектор пока отбрасываю.
Далее, попытка раскрутить через обычный вектор с "union select" так-же накладывает серьёзные преграды, так как SQL иньекция попала в подзапрос where который обрамлен двумя скобками, и закрыть его скобкой ) не получается, можно ли из этой позиции как то выбраться и произвести свой SQL запрос так же непонятно, по крайней мере векторов обхода я не вижу.
SQL иньекция на сайте только в этом месте, в других местах ничего уязвимого нету.
Буду очень очень благодарен за любую подсказку, в какую сторону можно копать, и что можно ещё попробовать, чтобы раскрутить эту SQL.

Последний раз редактировалось preg_match; 16.10.2016 в 23:36..
preg_match вне форума   Ответить с цитированием
Старый 25.10.2016, 01:05   #3567
mikhailtpm
 
Аватар для mikhailtpm
 
Регистрация: 01.07.2015
Сообщений: 67
Репутация: 0
По умолчанию

Если все написано на Nodejs, возможно залить шелл в этом случае?

1. На сайте стоит https://github.com/blueimp/jQuery-File-Upload
2. Загружать могу любые типы файлы
mikhailtpm вне форума   Ответить с цитированием
Старый 25.10.2016, 19:56   #3568
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

Цитата:
Сообщение от mikhailtpm Посмотреть сообщение
Если все написано на Nodejs, возможно залить шелл в этом случае?

1. На сайте стоит https://github.com/blueimp/jQuery-File-Upload
2. Загружать могу любые типы файлы
или если там есть какой-нибудь другой сервак, или если ты можешь слить сорцы сервера, впилить туда бэкдор, перезалить и дождаться перезапуска сервака.
__________________
Jokester: Ок, с тобой проще согласиться чем переубедить. :)
HeartLESS вне форума   Ответить с цитированием
Старый 03.11.2016, 17:34   #3569
Faaax
 
Аватар для Faaax
 
Регистрация: 03.04.2012
Сообщений: 94
Репутация: 6
По умолчанию

выручайте,не пойму что за шлак
есть код для бекапа
Код:
<?php
/******************************************************************************/
//                                                                            //
//                           InstantCMS v1.10.5                               //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2014                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

class cmsBackup {
	
    const MAXIMUM_TOKENS_COUNT = 30;

    private static $csrf_token = '';
    private static $instance;

    private function __construct() { }

    private function __clone() {}

// ============================================================================ //
// ============================================================================ //

    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self;
        }
        return self::$instance;
    }
	
	
// ============================================================================ //
	
	
	
	 public function authDbx() {
		
		$inCore = cmsCore::getInstance();
		$inPage = cmsPage::getInstance();
		$inDB   = cmsDatabase::getInstance();
		$inUser = cmsUser::getInstance();
		
		$file_upload = self::creat_backup();
		 
		require_once PATH."/includes/dropbox/autoload.php";

		if(!function_exists('curl_init')){
			echo "Не вкдючен CURL";
			return true;
		}	

		$accessToken = '9orzRNyffEAAAAAAAAAAF-ly4jR30E3PkGf9mFAO3FtdsSD-rHqpy3LWrRiCdXQM';
		$dbxClient = new Dropbox\Client($accessToken, "fox");
		$accountInfo = $dbxClient->getAccountInfo();

		//print_r($accountInfo);
		
		echo '<h2>Данные аккаунта</h2><br><table>';
		foreach($accountInfo AS $key => $value){
			echo '<tr><td>'.$key.'</td><td>'.$value.'</td></tr>';
		}
		echo '</table><br><br><br>';
		

		$f = fopen(PATH.'/upload/'.$file_upload, "rb");
		$result = $dbxClient->uploadFile("/mysql/".$file_upload, Dropbox\WriteMode::add(), $f);
		fclose($f);
		//print_r($result);
		echo '<h2>Данные загруженного файла</h2><br><table>';
		foreach($result AS $key => $value){
			echo '<tr><td>'.$key.'</td><td>'.$value.'</td></tr>';
		}
		echo '</table>';

         unlink(PATH.'/upload/'.$file_upload);

		/*
		$folderMetadata = $dbxClient->getMetadataWithChildren("/");
		print_r($folderMetadata);

		$f = fopen(PATH."/7337507.txt", "rb");
		$fileMetadata = $dbxClient->getFile("/7337507.txt", $f);
		fclose($f);
		print_r($fileMetadata);
		*/
	 }
	 public static function authDbxCron() {
		
		//$inCore = cmsCore::getInstance();
		$inDB   = cmsDatabase::getInstance();
		
		$file_upload = self::creat_backup();
		 
		require_once PATH."/includes/dropbox/autoload.php";

		if(!function_exists('curl_init')){
			return false;
		}	

		$accessToken = '9orzRNyffEAAAAAAAAAAF-ly4jR30E3PkGf9mFAO3FtdsSD-rHqpy3LWrRiCdXQM';
		$dbxClient = new Dropbox\Client($accessToken, "fox");
		$accountInfo = $dbxClient->getAccountInfo();

		//print_r($accountInfo);
	
		

		$f = fopen(PATH.'/upload/'.$file_upload, "rb");
		$result = $dbxClient->uploadFile("/mysql/".$file_upload, Dropbox\WriteMode::add(), $f);
		fclose($f);

         unlink(PATH.'/upload/'.$file_upload);


        self::write_data_to_journal('Загрузка бэкапа'.$file_upload.' выполнена');

		return true;
	
	 }
	
	public function creat_backup() {
		$inDB   = cmsDatabase::getInstance();
		 //Получаем все таблицы
		 $tables = '*';
		if($tables == '*')
		{
			$tables = array();
			$result = $inDB->query('SHOW TABLES');
			while($row = $inDB->fetch_row($result))
			{
				$tables[] = $row[0];
			}
		}
		else
		{
			$tables = is_array($tables) ? $tables : explode(',',$tables);
		}
		$time_b = time();
		//Цикл по всем таблицам и формирование данных
		foreach($tables as $table)
		{
			$result = $inDB->query('SELECT * FROM '.$table);
			$num_fields = $inDB->num_fields($result);
	 
			$return= 'DROP TABLE '.$table.';';
			$row2 = $inDB->fetch_row($inDB->query('SHOW CREATE TABLE '.$table));
			$return.= "\n\n".$row2[1].";\n\n";
			
			$handle = fopen(PATH.'/upload/db-backup-'.$time_b.'.sql','a+');
			fwrite($handle,$return);
			fclose($handle);
		
			for ($i = 0; $i < $num_fields; $i++)
			{
				$b = 0;
				while($row = $inDB->fetch_row($result))
				{
					$b++;
					$return= 'INSERT INTO '.$table.' VALUES(';
					for($j=0; $j<$num_fields; $j++)
					{
						$row[$j] = addslashes($row[$j]);
						//$row[$j] = preg_replace("\n","\\n",$row[$j]);
						if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
						if ($j<($num_fields-1)) { $return.= ','; }
					}
					$return.= ");\n";
					
					$handle = fopen(PATH.'/upload/db-backup-'.$time_b.'.sql','a+');
					fwrite($handle,$return);
					fclose($handle);
					//if($b==3)
						//break;
				}
				//if($i == 1) 
					//break;
			}
			$return="\n\n\n";
		}
	 
		//Сохраняем файл
		$handle = fopen(PATH.'/upload/db-backup-'.$time_b.'.sql','a+');
		fwrite($handle,$return);
		fclose($handle);


        if(extension_loaded('zip')) {
            $zip = new ZipArchive();
            $zip_name ='zip-db-backup-'.$time_b.'.zip';
            if ($zip->open( PATH.'/upload/'.$zip_name, ZIPARCHIVE::CREATE) == TRUE) {
                $zip->addFile(PATH.'/upload/db-backup-'.$time_b.'.sql');
                $zip->close();
                if (!file_exists(PATH.'/upload/'.$zip_name)) {
                    $zip_name = 'db-backup-'.$time_b.'.sql';
                }
                else{
                    unlink(PATH.'/upload/db-backup-'.$time_b.'.sql');
                }
            }
        }
		
		return $zip_name;//'db-backup-'.$time_b.'.sql';
	}
	
	public function creat_backup2() {
		$inDB   = cmsDatabase::getInstance();
		 //Получаем все таблицы
		 $tables = '*';
		if($tables == '*')
		{
			$tables = array();
			$result = $inDB->query('SHOW TABLES');
			while($row = $inDB->fetch_row($result))
			{
				$tables[] = $row[0];
			}
		}
		else
		{
			$tables = is_array($tables) ? $tables : explode(',',$tables);
		}
	 
		//Цикл по всем таблицам и формирование данных
		foreach($tables as $table)
		{
			$result = $inDB->query('SELECT * FROM '.$table);
			$num_fields = $inDB->num_fields($result);
	 
			$return.= 'DROP TABLE '.$table.';';
			$row2 = $inDB->fetch_row($inDB->query('SHOW CREATE TABLE '.$table));
			$return.= "\n\n".$row2[1].";\n\n";
			
			for ($i = 0; $i < $num_fields; $i++)
			{
				$b = 0;
				while($row = $inDB->fetch_row($result))
				{
					$b++;
					$return.= 'INSERT INTO '.$table.' VALUES(';
					for($j=0; $j<$num_fields; $j++)
					{
						$row[$j] = addslashes($row[$j]);
						$row[$j] = preg_replace("\n","\\n",$row[$j]);
						if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
						if ($j<($num_fields-1)) { $return.= ','; }
					}
					$return.= ");\n";
					//if($b==3)
						//break;
				}
				//if($i == 1) 
					//break;
			}
			$return.="\n\n\n";
		}
	 
		//Сохраняем файл
		$handle = fopen(PATH.'/upload/db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
		fwrite($handle,$return);
		fclose($handle);
	}
    private static function write_data_to_journal($text_var = ''){
        $fp = fopen(PATH . '/1234567.txt', 'a');
        $mytext = time().' '.$text_var.chr(10);
        fwrite($fp, $mytext);
        fclose($fp);
        return true;
    }
   

}
но при обращении site/upload/zip-db-backup-1478182501.zip файл не найден,хотя в логе пишет что файл успешно записан
Faaax вне форума   Ответить с цитированием
Старый 11.11.2016, 16:23   #3570
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Имеется Apache + PHP, свежие версии.

Контролирую часть пути и название файла в move_uploaded_file.

Цитата:
/home/user/www/upload/UNDER_CONTROL/UNDER_CONTROL.jpg
Расширение принимается только jpg. Хендлеры прописаны верно, .php.jpg не работает. Нуллбайт так же, не даёт результата, возможно присутствует file_exists.

Есть ли ещё какие-то трюки которые стоит проверить?

Последний раз редактировалось crlf; 11.11.2016 в 16:26..
crlf вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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