|
|
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Есть известная работа Дэвида Литчфилда, описывающую использование sql - инъекции для получения полномочий dba: http://www.davidlitchfield.com/Exploiting_PLSQL_Injection_on_Oracle_12c.pdf. В работе предложен пример, демонстрирующий использование незащищенной процедуры, созданной пользователем sys. Соответственно, имея только доступ к этой процедуре и create session привилегию мы можем делать всё, что душе угодно. Проблема в следующем: Пусть уязвимая процедура vulnProc создана не пользователем sys, а user1 с ролью dba. Также есть пользователь user2, обладающий правами на использование этой процедуры, правами на создание сессии и просмотром таблиц, созданных user1. И вот хоть убей, не могу разобраться, как использовать эту уязвимость для того, чтобы user2 смог, сделать insert в таблицу user1. Прошу помощи и совета) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 01:30 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
Для начала - процедура/функция/пакет по умолчанию создается c DEFINER RIGHTS котoрый означает процедура выполняется под security domain владельца с привилегиями данными владельцу напрямую а не через роли (роли игнорируются и при компиляции, кстати независимо от DEFINER RIGHTS или INVOKER RIGHTS). Так-что есть ли у user1 DBA или нет значения не имеет. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 01:49 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
Спасибо, буду знать) Но суть вопроса от того не меняется. Или, быть может, кто-то знает другие способы провести инъекцию при заданных условиях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 02:28 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
SoratoManПусть уязвимая процедура vulnProc создана не пользователем sys, а user1 с ролью dba. Также есть пользователь user2, обладающий правами на использование этой процедуры, правами на создание сессии и просмотром таблиц, созданных user1. И вот хоть убей, не могу разобраться, как использовать эту уязвимость для того, чтобы user2 смог, сделать insert в таблицу user1. Прошу помощи и совета) Создаем пользователей Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. U1 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. U2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. На 12с лавочку прикрыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 03:57 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
Just for fun Создаем пользователей Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. U1 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. U2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 04:09 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
SoratoManСпасибо, буду знать) Но суть вопроса от того не меняется. Или, быть может, кто-то знает другие способы провести инъекцию при заданных условиях? Если user2 имеет CREATE PROCEDURE, то: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. Правда в 12C этого можно избежать через INHERIT PRIVILEGES. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 05:35 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за советы) Но уже из вредности хочется разобраться как применить код из статьи не для sys. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 23:05 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
SoratoManСпасибо большое за советы) Но уже из вредности хочется разобраться как применить код из статьи не для sys.Где ты увидел sys кроме моего трюкачества с sys.kupp$proc и что ты понимаешь под "не для sys"? В плане увеличения сложности можешь разобрать 1) сначала скрипт SY 2) потом мой с dbms_xmlquery.newcontext 3) и в последнюю очередь с sys.kupp$proc (1) и (2) это просто возможность воспользоваться правом другого пользователя на его объекты через инъекцию, а (3) - это типичный случай sql injection privilege escalation, но наличие гранта на sys.kupp$proc совсем не типично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 01:37 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, Вопрос задавался ради достижения 2 целей: 1) Увидеть примеры Sql-инъекций, с чем вы и SY любезно помогли) 2) Узнать, как модифицировать код из статьи для применения к процедуре, созданной не под sys. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 03:53 |
|
||
|
Sql инъекция в Oracle 12c
|
|||
|---|---|---|---|
|
#18+
SoratoManУзнать, как модифицировать код из статьи для применения к процедуре, созданной не под sys.Читай в FAQ про права через роль до полного просветления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 13:51 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39571725&tid=1884694]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 403ms |

| 0 / 0 |
