FurA
15.11.2006, 02:34
Доброго времени суток уважаемые.
Такая ситуация. Есть контрольная панель сервера игры Lineage 2. Моя цель - получить через неё базу данных игры. НАшел уязвимость типа SQL-inj (нефильтруется переменная с именем пользователя в кукисах). Вот функция проверки кукисов:
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, которому передается имя пользователя.
DEFINE("SELECT_USER_PASS", "SELECT account, password
FROM user_auth
WHERE account = '%s' ");
При подстановке кавычки в переменную с именем пользователя, хранящуюся в кукисах, вылетают следующие ошибки:
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
Как вообще получить эту долбанную бд?))
ПиСи
Могу предоставить все что нужно для проведения инъекции.
ПиПиСи
Если вы действительно поможете мне в этом, вы будете включены в состав авторов одной статьи =).
Заранее спасибо.
Такая ситуация. Есть контрольная панель сервера игры Lineage 2. Моя цель - получить через неё базу данных игры. НАшел уязвимость типа SQL-inj (нефильтруется переменная с именем пользователя в кукисах). Вот функция проверки кукисов:
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, которому передается имя пользователя.
DEFINE("SELECT_USER_PASS", "SELECT account, password
FROM user_auth
WHERE account = '%s' ");
При подстановке кавычки в переменную с именем пользователя, хранящуюся в кукисах, вылетают следующие ошибки:
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
Как вообще получить эту долбанную бд?))
ПиСи
Могу предоставить все что нужно для проведения инъекции.
ПиПиСи
Если вы действительно поможете мне в этом, вы будете включены в состав авторов одной статьи =).
Заранее спасибо.