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

26.08.2009, 15:11
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
И снова новые задания!
Пока 3 штуки добавил, потом еще напишу. Продолжаем решать задания)
Присылайте так-же свои задания, с удовольствием добавлю.
|
|
|

26.08.2009, 15:28
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Есть такая форма загрузки картинок на сайт (например в админке, куда вы только что получили доступ через sql-inj):
PHP код:
<?php
if ($HTTP_POST_VARS['submit']) {
if (!is_uploaded_file($HTTP_POST_FILES['file']['tmp_name'])) {
$error = "You did not upload a file!";
unlink($HTTP_POST_FILES['file']['tmp_name']);
// assign error message, remove uploaded file, redisplay form.
} else {
//a file was uploaded
$maxfilesize=10240;
if ($HTTP_POST_FILES['file']['size'] > $maxfilesize) {
$error = "file is too large";
unlink($HTTP_POST_FILES['file']['tmp_name']);
// assign error message, remove uploaded file, redisplay form.
} else {
if ($HTTP_POST_FILES['file']['type'] != "image/gif" AND $HTTP_POST_FILES['file']['type'] != "image/jpeg") {
$error = "This file type is not allowed";
unlink($HTTP_POST_FILES['file']['tmp_name']);
// assign error message, remove uploaded file, redisplay form.
} else {
//File has passed all validation, copy it to the final destination and remove the temporary file:
copy($HTTP_POST_FILES['file']['tmp_name'],"./".$HTTP_POST_FILES['file']['name']);
unlink($HTTP_POST_FILES['file']['tmp_name']);
print "File has been successfully uploaded!";
exit;
}
}
}
}
?>
<html>
<head></head>
<bоdу>
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<?=$error?>
<br><br>
Choose a file to upload:<br>
<input type="file" name="file"><br>
<input type="submit" name="submit" value="submit">
</form>
</bоdу>
</html>
URL до скрипта загрузки: http://site.ru/admin/upload.php (просто как пример)
Задача: Написать скрипт на PHP, загружающий шелл вместо картинки, обойти проверку (т.е. загрузить файл с расширением .php)
Условия: magic_quotes_gpc=ON, register_globals=OFF
Форма заливки взята с реально действующего движка.
Цветным просьба не участвовать, т.к. легко 
|
|
|

26.08.2009, 15:31
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
Задание 030
PHP код:
<?php
$a = array('cat','dog','fox');
$b = array('Moscow','London');
$c = array('RED');
$d = $b + $a + $c;
?>
в результате мы получим массив :
Array ( [0] => Moscow [1] => London [2] => fox )
результат таков потому что у массивов $a,$b,$c есть совпадения в индексах(остались только разные индексы).
Код:
$a имели индексы 0, 1, 2.
$b - 0, 1.
$c - 0.
поскольку в сложении массив $b стоял первым то его елемнты есть в результирующем массиве $d ну и последний елемент массива $d [2] => fox
остался потому что неодин из елементов 3-их массивов $a,$b,$c не имел индекс [2]
|
|
|

26.08.2009, 15:37
|
|
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме: 2230263
Репутация:
229
|
|
Задание 031
PHP код:
<?php
function cnt_arr($array, &$count = 0) {
foreach ($array as $value) {
if (is_array($value)) {
$count++;
cnt_arr($value, $count);
} else {
return;
}
}
}
$arr = array('1' => array('2' => array('1' => '2')));
$cnt = '';
cnt_arr($arr, $cnt);
echo($cnt);
?>
2 Pashkela А я бы просто через tamper data сменил Content-Type: text/plain на Content-Type: image/gif, но можно конечно и самому сформировать 
Кстати, из какой это cms?
Последний раз редактировалось m0nsieur; 26.08.2009 в 16:19..
|
|
|

26.08.2009, 16:23
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
Задание 032
PHP код:
<?php
function countspec($stroka){
for($i=0;$i<=strlen($stroka);$i++){
if($stroka{$i}!==htmlspecialchars($stroka{$i})){
$count++;
}
}
return $count;
}
$stroka='<a>';
echo countspec($stroka);//2 потому как < & >
?>
|
|
|

26.08.2009, 16:54
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
2 m0nsieur:
Задача - написать фактически сплойт. Joker-jar только что в ЛС отписал рабочий вариант
Что tamper data - ежу понятно, но тут раздел кодинг. Откуда по вашему сплойты на milw0rm.com берутся? Вот и польза будет
Тот же сплойт на fckeditor на пыхе
PS: Речь идет об автоматизации процесса
Последний раз редактировалось Pashkela; 26.08.2009 в 16:58..
|
|
|

26.08.2009, 17:00
|
|
Познающий
Регистрация: 24.04.2007
Сообщений: 92
Провел на форуме: 2621544
Репутация:
412
|
|
Сообщение от L I G A
Задание 032
PHP код:
<?php
function countspec($stroka){
for($i=0;$i<=strlen($stroka);$i++){
if($stroka{$i}!==htmlspecialchars($stroka{$i})){
$count++;
}
}
return $count;
}
$stroka='<a>';
echo countspec($stroka);//2 потому как < & >
?>
Не ахти имхо...
без флага ENT_QUOTES htmlspecialchars() будет пропускать ОДИНАРНУЮ кавычку,да и вообще она мало спец символов преобразует.... с регуляркой будет правильней наверно...
Последний раз редактировалось S00pY; 26.08.2009 в 17:06..
Причина: завтыкал
|
|
|

26.08.2009, 17:12
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
Сообщение от S00pY
Не ахти имхо...
без флага ENT_QUOTES htmlspecialchars() будет пропускать ОДИНАРНУЮ кавычку,да и вообще она мало спец символов преобразует.... с регуляркой будет правильней наверно...
слух,если ты такой умник то напиши с регуляркой и без гемора.
|
|
|

26.08.2009, 17:39
|
|
Познающий
Регистрация: 24.04.2007
Сообщений: 92
Провел на форуме: 2621544
Репутация:
412
|
|
Сообщение от L I G A
слух,если ты такой умник то напиши с регуляркой и без гемора.
PHP код:
<?php
function countspec($stroka){
$count=0;
for($i=0;$i<=strlen($stroka)-1;$i++){
if(!preg_match("/[a-zA-Z0-9]/",$stroka[$i]))
{$count++;}}
Echo ('Спец символов:'.$count);
}?>
Как то так.... 
Не злись... я просто выразил своё мнение)
Последний раз редактировалось S00pY; 26.08.2009 в 17:42..
|
|
|

26.08.2009, 17:42
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
И у того и у другого ошибка - достаточно просто написать
$i<strlen($stroka)
счет длины начинается с единички 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|