Greendrake
Новичок
Взломайте эту авторизацию
Юзаю вот такой способ авторизации в своих проектах, хотелось бы узнать насколько он уязвим. Вобщем, слабо взломать?
Может, кто сразу скажет что тут и взламывать нечего...
Содержимое базы:
[SQL]
CREATE TABLE `pages` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`access` varchar(255) NOT NULL default '1,2,3,4,5',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=76 ;
INSERT INTO `pages` VALUES (1, 'Авторизация', '1,2'),
(2, 'Админка', '1');
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`group_id` int(11) NOT NULL default '0',
`login` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=17631 ;
INSERT INTO `users` VALUES (1, 1, 'admin', 'adminpass'),
(2, 2, 'user', 'userpass');[/SQL]
Собственно, сам скрипт:
Юзаю вот такой способ авторизации в своих проектах, хотелось бы узнать насколько он уязвим. Вобщем, слабо взломать?

Может, кто сразу скажет что тут и взламывать нечего...

Содержимое базы:
[SQL]
CREATE TABLE `pages` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`access` varchar(255) NOT NULL default '1,2,3,4,5',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=76 ;
INSERT INTO `pages` VALUES (1, 'Авторизация', '1,2'),
(2, 'Админка', '1');
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`group_id` int(11) NOT NULL default '0',
`login` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=17631 ;
INSERT INTO `users` VALUES (1, 1, 'admin', 'adminpass'),
(2, 2, 'user', 'userpass');[/SQL]
Собственно, сам скрипт:
PHP:
<?php
mysql_pconnect("localhost","dbUser","dbPassword");mysql_select_db("db");
session_start();
// Авторизация
if (isset($_POST['login'])&&isset($_POST['password']))
{
$r=mysql_query("select * from users where login='".$_POST['login']."' and password='".$_POST['password']."'");
if ($r) {$_SESSION['user']=mysql_fetch_assoc($r);};
};
// Группа юзверя и страница по умолчанию
if (!isset($_SESSION['user']['group_id'])) {$_SESSION['user']['group_id']=2;};
if (!isset($_GET['page'])) {$_GET['page']=1;};
// Проверка прав доступа
if (in_array($_SESSION['user']['group_id'],explode(",",mysql_result(mysql_query("select access from pages where id=".$_GET['page']),0,0))))
{
switch($_GET['page'])
{
case 1:
form();
break;
case 2:
print "Admin Panel"; // Вот сюда нужно попасть
break;
};
}
else
{
print "Acces denied<hr/>";
form();
};
function form()
{
print "
<form action=\"?page=2\" method=\"post\">
Login: <input type=\"text\" name=\"login\"><br/>
Password: <input type=\"password\" name=\"password\"><br/>
<input type=\"submit\" value=\"Login\"/>
</form>";
};
?>