Вверх ↑
Ответов: 327
Рейтинг: 5
#1: 2014-08-17 11:53:28 ЛС | профиль | цитата
Предлагаю сыграть в хакера, как ни странно правила все же присутствуют))
1.Просьба не губить сервер(отключка не нужна).
2.Всеми доступными способами добавить свой ник в неизвестное(по условию) поле. Все кто сможет добавить свой ник. будут отображены в списке победителей.
3.Просьба не чистить таблицу.

Вот обработчик, для лишнего интересу :
#php
<?
$replace_list1 = '! ~ ` \' , . ( ) * & ^ : ; % $ # @ " № ? = + - \\ / | ';
$replace_list2 = '! ~ ` \' . ( ) * & ^ : ; % $ # @ " № ? = + - \\ / | ';
$replace_list1 = explode(' ',$replace_list1);
$replace_list2 = explode(' ',$replace_list2);
$table_name = str_replace($replace_list1, '', $_POST['table_name']);
$col_names = str_replace($replace_list2, '', $_POST['col_name']);
$values = str_replace($replace_list2, '', $_POST['options']);
$values = explode(',', $values);
foreach($values as $val)
$vals = $vals.'\''.$val.'\',';
$vals = substr($vals,0,-1);
if($_POST['type'] == 'insert'){
mysql_query("INSERT INTO ".$table_name." (".$col_names.") VALUES (".$vals.")");
echo 'INSERT INTO '.$table_name.' ('.$col_names.') VALUES ('.$vals.')'.'<br>';
}
if($_POST['type'] == 'select'){
$sql = mysql_query("SELECT ".$col_names." FROM ".$table_name."");
echo 'SELECT '.$col_names.' FROM '.$table_name.''.'<br><br>';
echo '<table><tr><td>Имя</td><td>Комментарий</td></tr>';
while($result = mysql_fetch_assoc($sql))
echo '<tr><td>'.$result['name'].'</td><td>'.$result['comment'].'</td></tr>';
echo '</table><br><br>';
}
?>
Адрес : http://test-baza.hol.es/

Для всех вас это думаю можно считать тренировкой.
А для меня полезный опыт, если вам вдруг удастся занести свой ник, думаю можно считать это дырой в коде, надеюсь вы поделитесь тем, как вы это сделали.


P.S.
Делаю сайт, хочу избавиться от дыр, решил вот на такой игре поискать дыры.
Естественно на сайте нет подобной лабуды с абы каким добавлением в бд.
Так же интересно:
1.Является ли mysql_real_escape_string альтернативой
$replace_list1 = '! ~ ` \' , . ( ) * & ^ : ; % $ # @ " № ? = + - \\ / | ';"
$replace_list1 = explode(' ',$replace_list1);
$col_names = str_replace($replace_list2, '', $_POST['col_name']);
2.Как сделать по функционалу такой же обработчик, но проще.
карма: 0

0