• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

PHP - админка

  • Автор темы Dico
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dico

Собственно сам топик только внизу пояснения к конкретной ситуации:
HTML:
<!--До этого всего идёт описание формы лог,пас (обычный HTML)-->
<!--В форме вводим логин и пароль в переменные-->

</form>
<form action=admin.php?adm=news method=post>
<input type=hidden name=login value=$log>
<input type=hidden name=password value=$pas>
<center>
</form>
Допустим:
Код:
<?
include "conf.inc"; //содержит переменные $login и $password
include "dez.inc"; // тут вся форма


if ($log==$login && $pas==$password)
{
echo 'OK';

}

?>
Допустим алгоритм таков если мы ввели правильный пароль то нам выедиться сообщение ОК (впринцепи всё как и в админке если правильный пароль и логин то ОК поподаем в формы для ввода различных данных)! Но чтото нечего неработает что можете посоветывать?
 
A

admin

Dico
я не понимаю смысл этой формы.
конечно работать не будет, если ты не сделаешь submit её.
а так эта форма тут вооще бессмыслена.

а во вторых. вот как работает всё. я смысла твоего кода не понял немного.

index.html

HTML:
<html>

<head>
<title></title>
</head>

<body>

<form action=index.php method=post>
<input type=hidden name=login1 value=root>
<input type=hidden name=password1 value=admin>
<input type=submit name=Submit value=Submit>
</form>
<center>
</body>

</html>

config.php

Код:
<?php

$login="root";
$password="admin";

?>

index.php

Код:
<?php

include "config.php"; 

if ($login1==$login && $password1==$password)
{

echo "OK";

}


?>
 
D

Dico

вот:
Код:
log.inc :

<?php
print"  <html>
    <head>
    <title>$deftitle</title>
    <LINK REL=\"STYLESHEET\" HREF=\"style.css\">
    </head>
    <body text=$textor bgcolor=$bgcolor_fon background=$bgcolor_right scroll=auto>
    <BR>
    <CENTER>
    <h5>авторизация</h5>
<br>
<form>
<table bgcolor=$bgcolor_left class=our>
<tr>
<td>
Login:
</td>
<td>
<input type=text name=log>
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type=password name=pas>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<input type=submit value='Вход'>
</td>
</tr>
</table>
</form>
<BR>
<BR>
<CENTER>
<b>©by DICO</a>
</b>
</body>
</html>
</form>
<form action=admin.php?deystvo=news method=post>
<input type=hidden name=login value=$log>
<input type=hidden name=password value=$pas>
<center>
</form> </body></html>

";
?>



config.inc

<?php
$bgcolor_left="#C9B18B";                      //фон левой колонок
$bgcolor_right="#DCC9C9";                     //фон главной полосы
$bgcolor_fon="#C1C7CE";                      //фон страницы
$table_width=700;                            //ширина таблиц
$admin_name = "admin";                       //login к админке
$admin_pass = "admin";                          //пароль к админке
$textor = "#000000";                       //Цвет текста админки
$bgcolor_left = "#C9B18B";
$errorlist1 = "Вы неправельно ввели пароль или имя";
$deftitle = "-Админка (С) By DICO-"                // титл админки
?>

index.php:


<?
include "config.inc";
include "log.inc";

if($log==$admin_name && $pas==$admin_pass)
{
ptint(ok); /* Для проверки работает или нет потом замениться на  формы и соответствующий код!*/
}

?>
Для большего понимания!!!! Здесь полный код только непонятно почему неработает чего нехватает!???????????PHP - учу относительно недавно !
 
G

Guest

Мозгов.... нехватает
Для б-ов было написан формат формы

<form name="form1" method="post" action="script.php">
<input type="text" name="textfield">
<input type="text" name="textfield2">
</form>

mind: можно все тоже самое сказать и без указания принадлежности человека к какому бы то ни было роду животных... уважайте себя и собеседника....
 
S

SDK

<form name="form1" method="post" action="script.php">
<input type="text" name="textfield">
<input type="text" name="textfield2">
<input type="hidden" name="deystvo" value="news">
</form>

Ты в методе передачи POST фигачешь admin.php?deystvo=news
 
G

Guest

В продолжение "мозгов":
Посмотри имена полей и соответсвенно имена переменных которые отлавливает скрипт ....
"... ты всё поймешь, ты все увидишь сам...." (с) пестня
 
D

Dico

Я что тебе полный листинг приводил ! полный листинг 19 кб.Я вырезал частями и самое основное вставил!

action=admin.php?deystvo=news - admin.php -и есть index.php!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

А с переменными всё нормально не в них дело!!!!!!!!!!!!!

дело в этом!:
if($log==$admin_name && $pas==$admin_pass)
{
ptint(ok); /* Для проверки работает или нет потом замениться на формы и соответствующий код!*/
}
 
G

Guest

Млин, ты б хоть книжку почитал для начала...

if($log==$admin_name && $pas==$admin_pass)
{
ptint(ok); /* Для проверки работает или нет потом замениться на формы и соответствующий код!*/
}

- тут почитаешь
 
G

Guest

А прикольно :D особенно последние твои строки :D код то ПОЛНЫЙ!!!!!!!!!!!!!!!!!!!!!!
<?
include "config.inc";
include "log.inc";

if($log==$admin_name && $pas==$admin_pass)
{
ptint(ok); /* Для проверки работает или нет потом замениться на формы и соответствующий код!*/
}

?>

Для большего понимания!!!! Здесь полный код только непонятно почему неработает чего нехватает!???????????PHP - учу относительно недавно !
 
S

SDK

:D Кто же, батенька, в хиддоны пороли с логином фигачет.


<input type=hidden name=login value=$log>
<input type=hidden name=password value=$pas>.

Хорошая такая админка - всегда знаешь пароль и логин. :D

Юзать сессии нужно ;)
 
R

Radiohead

Помоему достаточно правильный скрипт авторизации:
Файл action2.php:
Код:
<?php
session_start();
$db=mysql_connect("localhost", "root");// Ïîäêëþ÷àåìñÿ ê ÑÓÁÄ
mysql_select_db("test",$dB); // Âûáèðàåì áàçó äàííûõ
$result=mysql_query("SELECT login FROM auth", $dB); // Âûáèðàåì âñå çíà÷åíèÿ ñ ïîëÿ login
while ($myrow = mysql_fetch_array($result)) // Çàöèêëèâàåì ñòðóêòóðó ñ óñëîâèåì ñîçäàíèÿ ìàññèâà
{
$oklogin=in_array("$login",$myrow); // Èùåì èñíèííûå çíà÷åíèÿ ïàðàìåòðà login â ìàññèâå
if ($oklogin==TRUE) { // Åñëè íàéäåí
   $result2=mysql_query("SELECT * FROM auth WHERE login='$login'", $dB); // Êîíåêòèìñÿ ê áàçå ñ çàïðîñîì ïàðîëåé
   $myrow2=mysql_fetch_array($result2); // Ñîçäàäèì ìàññèâ ïàðîëåé ïðè ïîäõîäÿùåì login
   if ($pass==$myrow2["pass"]) { // Óñëîâèå ñðàâíåíèÿ ââîäèìîãî íàìè ïîðîëÿ è ïàðîëÿ èç ìàññèâà
       session_register("ok"); // Ðåãèñòðèðóåì ïåðåìêííóþ â ñåññèè
       $_SESSION['user']=$login; // Çàïèñàòü â ñåññèè ëîãèí
       header("Location: index.php?".session_name().'='.session_id()); // Îòïðàâëÿåì çàðåãèâøèãîñÿ óçâåðà íà ãëàâíóþ ñòðàíèöó
       exit; // Îáðûâàåì öèêë
       }
   else {
       echo ('PASSWORD NE TOT');// Åñëè ïàðîëü íå âåðåí
       session_unregister("ok"); // Óíè÷òîæàåì ïåðåìåííóþ â ñåññèè
       include "auth.php"; // Âûâîäèì ôîðìó àâòîðèçàöèè
      };
   return TRUE; // È îñòàíàâëèâàåì öèêë íî íå âûõîäèì èç íåãî
   };
}
echo ('takogo logina net'); // Åñëè login íå íàéäåí
session_unregister("ok"); // Óíè÷òîæàåì ïåðåìåííóþ â ñåññèè
include "auth.php"; // Âûâîäèì ôîðìó àâòîðèçàöèè
?>
Файл action.php:
<?php
$db=mysql_connect("localhost","root"); // Êîíåêòèìñÿ â ÑÓÁÄ
mysql_select_db("test", $dB); // Âûáèðàåì áàçó äàííûõ
$sql=mysql_query("INSERT INTO auth (login, pass) VALUES ('$login','$pass')"); // Îòïðàâëÿåì çàïðîñ íà âíåñåíèå äàííûõ
echo "OK"; // Âñ¸ ÎÊ
?>
Файл add.php
<form method="post" action="action.php">
Login:<input type="Text" name="login"><br>
Password:<input type="password" name="pass"><br>
<input type="Submit" name="submit" value="Register">
</form>
Файл index.php:
<?php
session_start(); // Çàïóñêàåì ñåññèþ
$ses_res=session_is_registered("ok"); // Åñëè â ìàñèâå ñåññèè åñòü ïåðåìåííàÿ ÎÊ òî ses_res ïîëó÷èò çíà÷åíèê TRUE
if ($ses_res==TRUE) { // Åñëè âñ¸ ïðîõëî íîðìàëüíî
   echo ('REG'); // Âûïîëíÿþòñÿ ñåðâèñû äîñòóïíûå òîëüêî çàðåãèíûì óçåðàì
   ?><br><?php
   echo $_SESSION['user']; // Âûâåñòè èìÿ ïîëüçîâàòåëÿ
   }
   else
   {
       echo ('NOT REG'); // Åñëè íåò
       include("auth.php"); // Òî ñíîâà âûâîäèì ôîðìó àâòîðèçàöèè
   }
?>
Файл auth.php:
<form method="post" action="action2.php">
Login:<input type="Text" name="login"><br>
Password:<input type="password" name="pass"><br>
<input type="Submit" name="submit" value="Register">
</form>


Простите но коментарии писались в другой кодировке.
playone@linuxmail.org
 
G

Guest

DICO вот пример

Код:
// Юзаем сессии
session_start();
session_register("level");


//если есть лог и пароль засовываем их в сессию
if ((isset($_login))
 &(isset($_pass)))
{
$level[log]=addslashes(htmlspecialchars(trim($_login)));
$level[pas]=MD5(htmlspecialchars(trim($_pass)));

//а сдесь сверяй с чем хочешь 
//хочешь с базой данных
//хочешь с зашитыми значениями

if(($level[log]=логин)&($level[pas]=пароль в мд5))
$level[lev]=1; else $level[lev]=0; 
//И при каждой загрузке скрипта обновляем $level[lev]
}

if ($level[lev]<1) { // а вот и форма
echo'
<center>
<form action="index.php" method="post">
input name="_login" type="text">
input name="_pass" type="password">
<input type="submit" value="Войти">
</form>
';
else  {



Оснальной код


}


Код обычный но работать будет <_<)))
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!