SQL-inj в MSSQL

Discussion in 'Уязвимости' started by FurA, 15 Nov 2006.

  1. FurA

    FurA Member

    Joined:
    1 Aug 2005
    Messages:
    18
    Likes Received:
    5
    Reputations:
    0
    Доброго времени суток уважаемые.

    Такая ситуация. Есть контрольная панель сервера игры Lineage 2. Моя цель - получить через неё базу данных игры. НАшел уязвимость типа SQL-inj (нефильтруется переменная с именем пользователя в кукисах). Вот функция проверки кукисов:
    Code:
    function checkcookie($where, $cookieuser, $cookiepass, $dbname, $sqladdress, $sqluser, $sqlpass) {
    	connectdb($dbname,$sqladdress, $sqluser, $sqlpass);
    	if($where==0) {
    		$result = mssql_query(sprintf(SELECT_USER_PASS, $cookieuser));
    		$rows=mssql_num_rows($result);
    		if ($rows>0) {
    			$rows=mssql_fetch_assoc($result); 
    			extract($rows);
    			$password = '0x' . bin2hex($password);
    			if(md5($password)==$cookiepass) {
    				quickrefresh('home.php');
    			} else {
    				resetcookies();
    			}
    		} else {
    		resetcookies();
    		}
    	} elseif($where==1) {
    		$result = mssql_query(sprintf(SELECT_USER_PASS, $cookieuser));
    		$rows=mssql_num_rows($result);
    		if ($rows>0) {
    			$rows=mssql_fetch_assoc($result); 
    			extract($rows);
    			$password = '0x' . bin2hex($password);
    			if(md5($password)!=$cookiepass) {
    				notloggedin();
    			}
    		} else {
    			notloggedin();
    		}
    	}
    }
    
    запрос SELECT_USER_PASS в MSSQL, которому передается имя пользователя.
    Code:
    DEFINE("SELECT_USER_PASS", "SELECT account, password
    FROM user_auth
    WHERE account = '%s' ");
    
    При подстановке кавычки в переменную с именем пользователя, хранящуюся в кукисах, вылетают следующие ошибки:
    Code:
    Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark after the character string '1234\' '. (severity 15) in E:\путь\к\скрипту\function.php on line 15
    
    Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near '1234\' '. (severity 15) in E:\путь\к\скрипту\function.php on line 15
    
    Warning: mssql_query() [function.mssql-query]: Query failed in E:\путь\к\скрипту\function.php on line 15
    
    Warning: mssql_num_rows(): supplied argument is not a valid MS SQL-result resource in E:\путь\к\скрипту\function.php on line 16
    
    Warning: Cannot modify header information - headers already sent by (output started at E:\путь\к\скрипту\function.php:15) in E:\путь\к\скрипту\function.php on line 254
    
    Warning: Cannot modify header information - headers already sent by (output started at E:\путь\к\скрипту\function.php:15) in E:\путь\к\скрипту\function.php on line 256
    
    Вопрос номер 1.
    Есть ли в MSSQL функцияя наподобе char()?
    Вопрос номер 2
    Как вообще получить эту долбанную бд?))

    ПиСи
    Могу предоставить все что нужно для проведения инъекции.
    ПиПиСи
    Если вы действительно поможете мне в этом, вы будете включены в состав авторов одной статьи =).

    Заранее спасибо.
     
  2. pop_korn

    pop_korn Elder - Старейшина

    Joined:
    13 Sep 2005
    Messages:
    148
    Likes Received:
    33
    Reputations:
    14
    имхо

    ничего не сделаеш, так как не сможеш составить корректный запрос

    magic quotes не даст закрыть ковычку

    хотя я не очень разбираюсь в sql, но раз уж mssql, то попробуй:
    PHP:
    EXEC master..sp_makewebtask "путь к сайту/1.html",   "SELECT * FROM INFORMATION_SCHEMA.TABLES" 
    уточни синтаксис
     
    #2 pop_korn, 15 Nov 2006
    Last edited: 15 Nov 2006
  3. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    1) 0xдвоичный код
    Стукни
     
  4. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    ну попробуй
    username'+or+'1'='1

    если проканает, значит пойдет. Если нет, значит надо вырубить magic_quotes и потом опять попробывать ))
     
  5. madnet

    madnet Умиротворенный

    Joined:
    9 Dec 2004
    Messages:
    868
    Likes Received:
    343
    Reputations:
    423
    <?
    echo('0x'.bin2hex("подобие char"));
    ?>

    если только за кавычку выйдеш.
     
    _________________________
  6. FurA

    FurA Member

    Joined:
    1 Aug 2005
    Messages:
    18
    Likes Received:
    5
    Reputations:
    0
    Данный вопрос закрыт, всем спасибо. Отдельный респект cash`y, который помог с инъекцией.

    Читайте статью в следующем xakepy ez!n3