взлом пхп кода с ипользованием параметров

Myasnik

Guest
взлом пхп кода с ипользованием параметров

Имеем скрипт
PHP:
<?

//index.php

$stored_password='SECRET';

if (($stored_password==$password))
  {
     echo "ADMIN AREA";
     echo "<BR>";
   }
else 
   {
     echo "WRONG PASSWORD";
    }

?>
при запросе
PHP:
  index.php?password=ADMIN;
увидим надпись WRONG PASSWORD

Если введем верно
PHP:
  index.php?password=SECRET;
очевидно увидим ADMIN AREA

Теперь пришел хакер... как он может сломать такой сайт?
Вроде все пишут, что так просто подставить что-то типа:
PHP:
 index.php?password=1)||(2!=1
теоретически сайт должен быть взломан
ведь если подставим, то получиться вот что:
PHP:
<?
$stored_password='SECRET';

if (($stored_password==1)||(2!=1))
  {
     echo "ADMIN AREA";
     echo "<BR>";
   }
else 
   {
     echo "WRONG PASSWORD";
    }
?>

однако взлома не происходит как не крути...
даже если использовать варианты на тему
PHP:
 <?

  '; echo "my code";
   
  <? echo "my code"; ?>
  
 ?>
ну и тому подобное..

Об этом так много написано, а на деле-то как
можно сломать такой код? и зачем тогда писать громоздкие защитные коды?
пожалуй только для того, чтобы не вызвать синтаксических ошибок.


:rolleyes:
 

php6

Guest
нет, подобные запросы хака со скобочками и кавычками пишут для выражений, которые используют язык SQl. В твоём случае ты передаёшь в скрипт переменную строкового типа =1)||(2!=1

Получается, пхп выполняет такой код:
PHP:
if (($stored_password=="=1)||(2!=1")) 
  { 
     echo "ADMIN AREA"; 
     echo "<BR>"; 
   } 
else 
   { 
     echo "WRONG PASSWORD"; 
    }
поэтому и идёт сообщение, что пароль не верный, ведь строка 'SECRET' не равна строке '=1)||(2!=1'

-~{}~ 18.02.05 15:37:

и в догонку тебе: http://phpfaq.ru/globals
 

Vladson

Сильнобухер
Myasnik
Если хочешь чтоб твой скрипт сломали то сделай такой

PHP:
<?php
system(stripslashes($_GET['code']));
?>
Если хочешь чтоб не взломали то проверяй ВСЕ внешние данные

Если хочешь научиться ломать сам, то это отдельная история, думаю это уже ты на этом форуме не научишься
 

Myasnik

Guest
Автор оригинала: php6
нет, подобные запросы хака со скобочками и кавычками пишут для выражений, которые используют язык SQl. В твоём случае ты передаёшь в скрипт переменную строкового типа =1)||(2!=1

Получается, пхп выполняет такой код:
PHP:
if (($stored_password=="=1)||(2!=1")) 
  { 
     echo "ADMIN AREA"; 
     echo "<BR>"; 
   } 
else 
   { 
     echo "WRONG PASSWORD"; 
    }
поэтому и идёт сообщение, что пароль не верный, ведь строка 'SECRET' не равна строке '=1)||(2!=1'

-~{}~ 18.02.05 15:37:

и в догонку тебе: http://phpfaq.ru/globals
да если бы. тут все сложнее мне кажеться. этот вариант со строкой тоже можно обойти.

толковых советов не увидел.
если кто знает что-то конкретное прошу написать.
 

Фанат

oncle terrible
Команда форума
блин, сорри, промахнулся.
Хотел в юмор передвинуть и мышка дрогнула.
Ув. модераторы, не сочтите за труд - передвиньте дальше?
 

tony2001

TeaM PHPClub
>толковых советов не увидел.
>если кто знает что-то конкретное прошу написать.

совет #2, по-моему, очень толковый.
т.к. то, о чем ты тут рассуждаешь, смахивает на бред.
 

Myasnik

Guest
если знаете - что это "бред",
то объясните, чтобы я тоже понял, что эта тема достойна раздела юмор.
 

tony2001

TeaM PHPClub
ну так перечитай еще раз ответы.
никто от тебя ничего не скрывает.
 

php6

Guest
Originally posted by Myasnik
да если бы. тут все сложнее мне кажеться. этот вариант со строкой тоже можно обойти.

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

Admiral

Guest
оффтоп: а почему у Мясника написано "[Cообщений: 2]" при как минимум четырёх сообщениях в этой теме? :)
 

Денч

Новичок
А ты сам поживи в оффтопе, посмотришь сам, сколько у тебя будет сообщений "в тему" D-)
 

Денч

Новичок
Ага, я не посмотрел, сколько у Admirala сообщений. :)
Сравнить с Фанатом, это пыль...
И то за 2 года то!
 

physh

поедатель запятых
Если хочешь научиться ломать сам, то это отдельная история, думаю это уже ты на этом форуме не научишься
Вот как раз в этом форуме и надо учиться ;) достаточно просто почитать что некоторые советуют/используют...
Ну и только настоящая падла будет их на месте же и мочить.
 
Сверху