ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

[PHP] ЗАДАНИЯ от Krist_ALL
  #1  
Старый 20.06.2009, 18:07
Аватар для Krist_ALL
Krist_ALL
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме:
1996429

Репутация: 468


Отправить сообщение для Krist_ALL с помощью ICQ
Thumbs up [PHP] ЗАДАНИЯ от Krist_ALL

PHP - ЗАДАНИЯ ОТ Krist_ALL



Что это такое?
PHP задания - это небольшие задачки по php. Вы можете из выполнять для того, чтобы попрактиковатся в php улучшить и систематизировать свои знания. За каждое выполненое задание вы получаете от меня +4 Задания практикуются в закрытых группах. В предложениях по улучшению данного раздела, я видел что несколько человек просили сделать задания. Вот я и сделал)

Всем ли можно выполнять задания?
Всем, но есть небольшапя просьба, профи, дайте новичкам подумать. И, те, кто состоит в закрытых группах - у вас свои задания, у нас свои. Можете конечно выполнить...Но лучше пусть выполняют люди из паблик раздела

Можно я свои задания здесь напишу?
Да, и я их добавлю во второй пост

Я тупой, объясните еще раз нафига задания и кому это выгодно?
В закрытых группах есть раздел задания - мне не дадут соврать участники закрытых групп. Там есть задания - например залить шелл на сайт, есть и задания на php! Я решил сделать задания тоже только в паблик разделе. Мне ничего не задавали, мне не требуются решения! Выполнили задание - +4 вам в репку и все.

Откуда эти задания?
Задания я беру из головы, иногда из интернета, иногда участники форума подбрасывают.

Я решил 2 задания, а мне поставили плюсики как за одно задание! Почему?
Я не могу ставить сразу 2 раза репутацию. А потом я могу забыть что вы выполнили 2 задания и что я за него не поставил репу. Вы же делаете задания не ради репутации?

Почему тема называется php задания, а тут есть задания на хак?
PHP кодер должен знать как защитить свой скрипт. А то попадаются очень наивные кодеры, которые расчитывают что переменная не может содержать спецсимволов и значение её берётся прям из GET / POST / COOKIE без фильтрации и суётс в запрос к БД. Вариантов масса. Поэтмоу надо делать не только чтобы работало, а чтоб без отказно работало и сломать было нельзя.

Есть ли на других сайтах такие же задания по php?
Есть, но задания на других сайтах менее интересные и не в таком колличестве. Мне кажется задание написать гостеауху - это бред. Тут хорошие интересные задания, разного уровня сложности. Надеюсь Вам понравится!

Сколько еще задания будет?
100 а может быть и 1000) Конечно, у меня фантазия не безгранична, но я стараюсь придумывать много интересных заданий. Когда будет 100 задания я сделаю PDFку - 100 задания php





Проект закрыт! Задания больше не будет. Я объясню почему.
После смены алгоритма репутации, народ перестал решать задания, оказывается раньше люди решали задания за +++++, а ведь они еще приобретали опыт и новые знания. Но главным для них были +++++. Очень жаль. Спасибо всем , кто добавлял свои задания. Я планировал много интересных задания и книгу 100 заданий php. А сейчас заданий только 50. Может быть задания появються на другом всем известном портале. И всеже ВСЕМ респект огромный!!!








-------------------------------------------------------------------------------------
50 ЗАДАНИЙ
-------------------------------------------------------------------------------------

Новости:

Проект закрыт!
50 заданий)
Теперь задания будут сложнее.













ЗАДАНИЯ

__________________________________________________ _____________________________________________












Задание 001
Составить регулярное выражение, которое поменят местами 2 слова в строке. Строка берется из GET переменной.

Комментарий: Задание совсем простое. Для разминки)
Ответ




Задание 002
Написать функцию, которая многократно, без учета регистра вырезает заданые слова. Например select,union,update или матерные слова
Ответ




Задание 003
Генерировать 3 случайных числа в диапозоне от 1 до 10 пока сумма этих 3х чисел не будет равна 16.
Ответ




Задание 004
Есть массив array(10,6,15,25,18,11,10,5,7,30). Вывести индексы тех его элементов, которые делятся на 5 без остатка.
Ответ 1 Ответ 2



Задание 005СПАЛИЛ GIFTS! За что ему говрим ''СПАСИБо!"
В GET переменной передается строка вида tratata#tratata. Есть регулярка вида
preg_match('@^\w+@',$_GET['stroka']); Как видно регуляка ищет строку с буквами, вопрос, почему true для строки tratata#tratata и false для tratata%tratata



Задание 006
Есть админка.
login.php
PHP код:
<?php
....


if(isset(
$_GET['login']) and isset($_GET['password'])) 
{
   if(
preg_match('#^\d$#',$_GET['password'])) {
      
$password = (int)$_GET['password'];     }
   else 
$password $_GET['password'];   
   
$login $_GET['login'];

 if(
$login == 'admin' and $password == "gg") echo 'OK'; else exit; 
}

...


?>
Как войти в админку не зная пароля? Логин всегда admin
Ответ



Задание 007 от d_x
Скрипты выводят некоторые строки или числа, подумайте, почему именно так?
Сложность по возрастанию.
PHP код:
<?php
print ((print '')<<1)+((print '')<<(((print '')<<1)+(print '')))+((print '')<<(((print '')<<1)+((print '')<<1)))+((print '')<<(((print '')<<1)+((print '')<<1)+((print '')<<1)+print ''))+((print '')<<(((print '')<<1)+((print '')<<1)+((print '')<<1)+((print '')<<1)+print ''));  
?>
PHP код:
<?php
for($i=0,$a=a;$i<=2941;$i++) 
$a++; 
eval(
$a."('".++$a."');");  
?>
PHP код:
<?php
$a
=1
$a=$a<<7
$a-=$a>>3
${
chr($a)}=$a
$a+=2
$p=chr($p).chr($a); 
$a=0151
$p.=chr($a); 
$a=m
$p.=++$a.t._.r
$p($p($p)); 
?>



Задание 008
Как обойти фильтр?
PHP код:
<?php
$id 
str_ireplace('select'''$_GET['id'])
$query mysql_fetch_array(mysql_query("select * from news where id ='$id' "));
?>
Ответ




Задание 009
В директории 3 файла: index.php , news.inc , config.php. Надо обойти защиту от расширения и прочитать файл config.php
PHP код:
<?php

$f 
= (string)@$_GET['f'];  
$f str_replace('/'''$f);  
$f .= '.inc;  

if (file_exists($f)) { 
   echo htmlspecialchars(file_get_contents($f));  
                                    }  
 
else  exit;

  
?>
Ответ



Задание 010
Провести sql injection
PHP код:
<?php
$name 
str_replace('/**/','','str_replace(' ','',$_GET['name']));
$query = mysql_query("select * from users where name='
$name'"); ?>
Ответ



Задание 011 от d_x
Есть строка:
PHP код:
 $str=
383 текст с числами 5838 
635 еще текст 001 462 
432текст564 
'

Задание:
Написать скрипт, который все цифры в тексте заменит на их шестнадцатеричные эквиваленты, чтобы получилось так:
PHP код:
PHP код:
 
0x17F текст с числами 0x16CE 
0x27B еще текст 0x1 0x1CE 
0x1B0текст0x234 

Запрещено использовать любые циклы.
Ответ 1 Ответ 2



Задание 012 от BlackSun
Нарыть активную XSS
PHP код:
<? // config.php 
    
$dbhost 'localhost'
    
$dbuser 'root'
    
$dbpass ''
    
$dbname 'xss'
     
    
mysql_connect($dbhost$dbuser$dbpass) or die('Can\'t connect to MySQL server.'); 
    
mysql_select_db($dbname) or die('Can\'t select db.'); 
?>
PHP код:
<? // index.php 
    
include('config.php'); 

    function 
callback($text
    { 
        return 
html_entity_decode($text[0]); 
    } 
     
    function 
parse_bb($text
    { 
        
$text str_replace('"'''$text); 
        
$text str_replace("'"''$text); 
        
$text htmlspecialchars($text); 
        
$text str_replace("\r\n"'<br>'$text); 
         
        
$bb = array('[B]' => '<b>''[/B]' => '</b>''[U]' => '<u>''[/U]' => '</u>'
                    
'[I]' => '<i>''[/I]' => '</i>''[CENTER]' => '<center>''[/CENTER]' => '</center>'
                    
'[MAIL=(' => '<a href="mailto:'')MAIL]' => '">''[/MAIL]' => '</a>'
                    
'[HREF=(' => '<a href="'')HREF]' => '">''[/HREF]' => '</a>'
                    
'[IMG]' => '<img border="0" src="''[/IMG]' => '">''[HR]' => '<hr>'); 
                     
        foreach (
$bb as $code => $replace
        { 
            
$text str_replace($code$replace$text); 
        } 

        
$text preg_replace_callback('#"(.*?)"#''callback'$text); 
         
        return 
$text
    } 
     
    if (isset(
$_POST['name']) && isset($_POST['text'])) 
    { 
        
mysql_query('INSERT INTO gb (`name`, `text`) VALUES (\''.addslashes(htmlspecialchars($_POST['name'])).'\', \''.parse_bb($_POST['text']).'\')'); 
        
header('Location: index.php'); 
        die(); 
    } 
?> 
<html> 
<head> 
    <title>Active XSS</title> 
    <style type="text/css"> 
        html { 
            background-color: #e6e6e6; 
        } 
        body { 
            font-family: Verdana, Arial, sans-serif; 
            font-size: 12px; 
            margin: 10px; 
            border: 1px solid #d0d0d0; 
            background-color: #f6f6f6; 
            padding: 10px; 
        } 
        #text { 
            border: 1px solid #999; 
            background-color: f6f6f6; 
            color: #000; 
            font-family: Verdana, Arial, sans-serif; 
            font-size: 12px; 
        } 
        #input1 { 
            border: 0; 
            color: #000; 
            width: 100%; 
        } 
        textarea { 
            border: 0; 
            color: #000; 
            width: 100%; 
            height: 150px; 
        } 
        table { 
            font-family: Verdana, Arial, sans-serif; 
            font-size: 12px; 
        } 
        #button { 
            border: 0; 
            background-color: f6f6f6; 
            color: #000; 
            width: 99%; 
        } 
        #border { 
            border: 1px solid #999; 
            font-family: Verdana, Arial, sans-serif; 
            font-size: 12px; 
        } 
    </style> 
</head> 
<body> 
<form method="post"> 
    <table border="0" cellpadding="1" cellspacing="1" width="80%" align="center"> 
    <tr> 
        <td width="100px">You name: </td> 
        <td id="border"><input type="text" name="name" value="Vasya" id="input1"></td> 
    </tr> 
    <tr> 
        <td colspan="2"> 
        <b>Allowed BB code:</b><br> 
        <ul> 
        <li><b>[B][/B] [U][/U] [I][/I] [CENTER][/CENTER] [IMG][/IMG] [HR]</b></li> 
        <li><b>[MAIL=(</b>mail@mail.ru<b>)MAIL]</b>My MAIL<b>[/MAIL]</b></li> 
        <li><b>[HREF=(</b>http://fsb-my.name<b>)HREF]</b>My Site<b>[/HREF]</b></li> 
        </ul> 
        </td> 
    </tr> 
    <tr> 
        <td colspan="2">&nbsp;</td> 
    </tr> 
    <tr> 
        <td colspan="2" align="center" id="border"> 
            <textarea name="text"></textarea> 
        </td> 
    </tr> 
    <tr> 
        <td colspan="2" align="center" id="border"><input type="submit" value="Post" id="button"></td> 
    </tr> 
    <tr> 
        <td colspan="2">&nbsp;</td> 
    </tr> 
    <tr> 
        <table border="0" cellpadding="2" cellspacing="2" width="100%" align="left" id="text"> 
        <? 
            $result 
mysql_query('SELECT * FROM gb ORDER BY id DESC'); 
            if (
$result
            { 
                while (
$row mysql_fetch_array($result)) 
                { 
                    
?> 
                    <tr> 
                        <td><?=$row['name'];?> ОХЬЕР:</td> 
                    </tr> 
                    <tr> 
                        <td><?=$row['text'];?></td> 
                    </tr> 
                    <tr> 
                        <td align="center"><font color="Gray">---------</font></td> 
                    </tr> 
                    <? 
                

            } 
        
?> 
        </table> 
    </tr> 
    </table> 
</form> 
</body> 
</html>
Код:
CREATE TABLE IF NOT EXISTS `gb` (
  `id` int(11) NOT NULL auto_increment,
  `name` text NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
Ответ



Задание 013
Войти в панель администрирования, используя sql injection . В БД не лезть. Обмануть проверку просто.
PHP код:
<?php // Login.php
....
$query "select * from admin where pass = '$_POST['pass']' and login = '$_POST['login']'";


?>
Ответ



Задание 014
Составить регулярное выражение, которое заменяет на лету
набор букв на мд5(от букв). Пример: 44ffff385dddd55
заменить на 44 (хешь от ffff) 385 (хешь от dddd) 55
Ответ



Задание 015
Какое число будет записано в переменую id при регистр глобал ON, и объяснить ПОЧЕМУ.
POST => $id = 1
COOKIE => $id = 2
GET => $id = 3
PHP код:
<?ph
$id 
$_REСQUEST['id'];
?>
Ответ



ЗАДАНИЕ 016 от d_x
Есть массив:
PHP код:
$arr=Array( 
Array(
'key1'=> 1'key2'=>3), 
Array(
'key1'=> 8'key2'=>4), 
Array(
'key1'=> 5'key2'=>6), 
Array(
'key1'=> 5'key2'=>8), 
Array(
'key1'=> 6'key2'=>9), 
Array(
'key1'=> 3'key2'=>7), 
Array(
'key1'=> 5'key2'=>1), 
Array(
'key1'=> 2'key2'=>2), 
Array(
'key1'=> 0'key2'=>0), 
Array(
'key1'=> 2'key2'=>5
); 
Написать функцию для его сортировки, чтобы можно было отсортировать этот массив, например, по ключам key1 по возрастанию и по ключам key2 по убыванию (нечто вроде sql - order by key1 asc, key2 desc), чтобы в результате получился такой массив:

PHP код:
Array( 
//все key1 - по возрастанию 
Array('key1'=>0,'key2'=>0), 
Array(
'key1'=>1,'key2'=>3), 
Array(
'key1'=>2,'key2'=>5), //тут 
Array('key1'=>2,'key2'=>2),  //и тут key2 - по убыванию 
Array('key1'=>3,'key2'=>7), 
Array(
'key1'=>5,'key2'=>8), //аналогично тут 
Array('key1'=>5,'key2'=>6), //тут 
Array('key1'=>5,'key2'=>1), //и тут 
Array('key1'=>6,'key2'=>9), 
Array(
'key1'=>8,'key2'=>4

Учесть, что ключей у вложенных массивов может быть сколько угодно, самих вложенных массивов также может быть любое число.
Ответ 1 Ответ 2



ЗАДАНИЕ 017
Есть строка текствоя. Нужно выделить красным слова, которые являются частью предыдущих слов. Например:
на входе "Ламерок ламер " на выхоже
Ламерок ламер
Ответ



ЗАДАНИЕ 018
Есть 2 переменные a = 5 И b =7. Нужно чтобы $a =7 а $b = 5 , при этом не создавая новых переменных
Ответ



ЗАДАНИЕ 019
$array = array(5,8,9,15,145,854,64,1,3,8,46,9999);
Определить максимальное число, которое находится в массиве, и вывести его индекс.
Ответ



Задание 020 от .:Enot:.
Предположим что у вас из интерпритатора спёрли функции implode() и join(). Напишите функцию, которая делает тоже самое что вышеупомянутые - объединяет массив в строку. Ну бинарнобезопасную обработку данных конечно можно опустить )
Ответ



Задание 021 от .:Enot:.
Есть два вот таких массива:
PHP код:
$num 5// Любая цифра 
$array1 = array(1357911131517); 
$array2 = array(246810); 
В итоге должно получиться следующее:
PHP код:
Array
        (
            [
0] => 1
            
[1] => 2
            
[2] => 3
            
[3] => 4
            
[4] => 5
        
)

Array
        (
            [
0] => 6
            
[1] => 7
            
[2] => 8
            
[3] => 9
            
[4] => 10
            
[5] => 11
            
[6] => 13
            
[7] => 15
            
[8] => 17
        

Т.е. два массива с элементами, отсортированными по возрастанию. Количество элементов в первом массиве определяется в переменной $num.
Естественно все действия только с исходными массивами, никаких range() и т.д. Ну и главное условие, циклами пользоваться нельзя
Ответ



Задание 022
У вас украли php функцию foreach(), написать ее на пхп) с использованием циклов.
Ответ



Задание 023
Определить с помощью регулярки делится ли число на 10 или нет.
Ответ



Задангие 024
Определить какой код выполнится быстрее и написать как вы оперделили это, а не просто мне так кажется
PHP код:
for($i=0;$i<10;$i++) 
{ echo 
'1php '; } 
PHP код:
while($i<10) {
echo 
'w1';
$i +=1;

Ответ



Задание 025
PHP код:
if(!preg_match('#\.php$#',$_FILES['name']))
{  
//Загрузка файла
}
else exit; 
Как видно из кода, проверяется расширение, если у файла расширение не php, то он загружается на сервер. Как залить шел?
Комментарий: Несовсем по пхп зададчка, но интересная.
Ответ



Задание 026
Объяснить, почему выводит 0.
PHP код:
$a 10;
$b 515;
$c 0.515;
$d $b<=$a&&$a==$c||$b>$c?0:1;
echo 
$d
Ответ



Зададние 027
Чего не знал програмист, кодя этот скрипт.
PHP код:
<?php
$name
htmlspecialchars($_POST['name'], ENT_COMPAT);
mysql_query("select * from users Where name = '$name'");
?>
Ответ



Зададние 028
Это скрипт инвайтов на одни супер пупер сайт. Надо ввести слово секретное и тогда будет доступна рега. Слова хранятся в бд. Если вы ввели слово и оно есть в бд - вы получите досутп к реге - это так задумывал горе кодер. Обойдите эту защиту.
PHP код:
<?php
// 
include('connect_database.php');

$b mysql_real_escape_string($_GET['word']);
mysql_query("select * from private where word like '$b'");

?>
Ответ



Задание 029
Написать скрипт зеркального отражения слов. На входе античат, на выходе тачитна - чтобы так можно было делать с любым словом.
Ответ 1 Ответ 2



Задание 030
PHP код:
<?php
$a 
= array('cat','dog','fox');
$b = array('Moscow','London');
$c = array('RED');
$d $b $a $c;
?>
Что окажется в массиве $d и почему.
Ответ 1 Ответ 2



Задание 031
Написать функцию определения сколько массивов содержит в себе массив. пример:
PHP код:
$a[]   //  0 
$a[][]  // 1
$a[][][][][] //4 
Ответ



Задание 032
Написать функцию, которая на выходе даст колличество спецсимволов во входной строке.
Ответ



Задание 033
PHP код:
<?php
$a 
= -1;
If(
$a == TRUE) echo 1;
?>
Почему выводит 1?
Ответ



Задание 034
PHP код:
<?php
echo (int)((0.1+0.7) *10); 
?>
Объяснить, почему выводит 7
Ответ



Задание 035 от mailbrush
Выполнить системную комманду, не используя каких-либо функциий, кроме echo (для вывода результата).
Ответ



Задание 036 от mailbrush


PHP код:
$word 'Hello'
Вывести значение переменной $word.
Строка "$word" в коде встречаться не должна.
Никакой конкатезации в коде не должно быть.
Ответ



Задание 037 от ElterRUS
Обойти авторизайию
PHP код:
<?php 
        $login 
substr($_GET['login'],0,6); 
        
$password substr($_GET['password'],0,6); 

        
$login str_replace('#'''$login); 
        
$login str_replace("-"''$login); 
        
$login str_replace('*'''$login); 
        
$login str_replace('|'''$login); 

        
$password str_replace('#'''$password); 
        
$password str_replace("-"''$password); 
        
$password str_replace('*'''$password); 
        
$password str_replace('|'''$password); 

        
$login preg_replace("/and|or/i","fuck",$login); 
        
$password preg_replace("/and|or/i","fuck",$password); 

        
$query "select * from `admin` where login = '$login' and password = '$password'"

        
$result mysql_query($query); 

        if(
mysql_num_rows($result) > 0
        { 
            
//в админке 
        

        . . . 
?>
Ответ



Задание 038
Написать функцию, которая делает следующее:
на вход:
первый аргумент - массив из чисел, например 2,8,10
второй аргумент - слово, например underground
на выходе - uNdeegrOuNd
тоесть Меняем на верхний регистр те буквы, номер которых указан в массиве.
Ответ



Задание 039
PHP код:
<?php
$i 
08;
echo 
$i;
?>
Что выведет скрипт и почему.
Ответ



Задание 040
Написать скрипт, который сделает следующее:
Было:
PHP код:
<?php
$a
[1]['a'] = 'lol';
$a[1]['b'] = 'heh';
$a[2]['a'] = 'gygy';
$a[2]['b'] = 'smeh';
?>
Стало
PHP код:
<?php
$b
[0] = 'lol';
$b[1] = 'heh';
$b[2] = 'gygy';
$b[3] = 'smeh';
?>
Ответ

Последний раз редактировалось Krist_ALL; 30.11.2009 в 17:57..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[php] On-Line Фейк mail.ru m0Hze E-Mail 37 13.01.2010 19:52
SQL-Inj Finder by mr.The [Special for antichat] [PHP] mr.The PHP, PERL, MySQL, JavaScript 24 07.08.2009 01:30
Задания ~Fenix~ Болталка 11 13.05.2006 11:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ