Накрылась моя CMS

#1 2 декабря 2011 в 14:25
DATABASE ERROR:

SELECT * FROM cms_components WHERE id>0 ORDER BY 0a

Unknown column '0a' in 'order clause'

В админке. Вроде ничего не ставил и не менял. Подскажите от чего может быть такая хрень
#2 2 декабря 2011 в 14:43
Проблема решилась созданием колонки 0a. Но теперь нужно искать зачем она понадобилась еще и куче файлов. есть идеи? где ковырять?
#3 2 декабря 2011 в 14:46
Может прсото нужно таблицы поправит в phpmyadmin?
#4 2 декабря 2011 в 15:49
Я тоже сразу об этому подумал но нет. Какая то дрянь начала использовать таблицу 0а. И судя по всему во всех файлах админки.
#5 2 декабря 2011 в 16:52
А вот и самая клоунада...


s48.radikal.ru/i122/1112/cc/2de8586d702f.png

/modules/mod_ipb/ я удалял… Отсюда запрос идти не может… теперь вопрос wtf?
#6 2 декабря 2011 в 17:36

Имя sort
Значение 0a
Хост citytula.ru
Путь /
Безопасный Нет
Истекает В конце сессии


Вот откуда растут ноги
#7 2 декабря 2011 в 17:39
Вопрос к разработчикам это пофишкено в 1.9? ведь если кука выполняет запрос, то можно выполнить все что угодно.

Neo (02.12.2011 17:42)
вобще данные ни как не проверяются, можешь например делать запрос
so="union select..."
#8 2 декабря 2011 в 21:36
кука выполняет запрос в базу? вот помню в наше время, куки были гораздо целомудреннее.

а вообще /js/jquery.cookie.js не потерялся?
#9 2 декабря 2011 в 21:56
  1.  
  2. Neo ( 17:33:50 )
  3. у тебя куки с названием so случайно нету?
  4. Енот Потаскун ( 17:34:12 )
  5. Имя sort
  6. Значение 0a
  7. Хост citytula.ru
  8. Путь /
  9. Безопасный Нет
  10. Истекает В конце сессии
  11. Енот Потаскун ( 17:34:16 )
  12. откуда это гавно?
  13. Neo ( 17:34:20 )
  14. вот тебе и ответ
  15. Neo ( 17:34:21 )
  16. а я хз
  17. Енот Потаскун ( 17:34:26 )
  18. жесть
  19. Neo ( 17:34:32 )
  20. if ($sort) {
  21. $sql .= ' ORDER BY '.$sort;
  22. if (isset($_REQUEST['so'])) { $sql .= ' '. $_REQUEST['so']; }
  23. }
  24. Neo ( 17:34:41 )
  25. function cpListTable($table, $_fields, $_actions, $where='', $orderby='title'){
  26. Neo ( 17:34:48 )
  27. File: admin/in~/cp.php Line 420 Col 0
  28. Енот Потаскун ( 17:34:56 )
  29. это че при помощи куки можно любой запрос выполнить?
  30. Neo ( 17:34:57 )
  31. корчое функция cpListTable формирует запрос
  32. Neo ( 17:35:30 )
  33. вот в сортировке есть такойп код if (isset($_REQUEST['so'])) { $sql .= ' '. $_REQUEST['so']; }
  34. Neo ( 17:35:47 )
  35. т.е. есть что-то передается параметром so любым способом, оно добавится к запросу
  36. Neo ( 17:36:03 )
  37. да в это so можно че хочешь запихнуть по идее, ну если прасер пропустит
  38. Енот Потаскун ( 17:36:03 )
  39. это баг?
  40. Neo ( 17:36:08 )
  41. это фича)
  42. Енот Потаскун ( 17:36:16 )
  43. вредоносной фича не будет?
  44. Neo ( 17:36:23 )
  45. короче запрсоы есть типов
  46. GET
  47. POST
  48. Neo ( 17:36:36 )
  49. если в комманднйо строке писатьт &so=1111
  50. Neo ( 17:36:39 )
  51. это GET
  52. Neo ( 17:36:47 )
  53. если пост запросом отавпрлять это POST
  54. Neo ( 17:37:07 )
  55. а если GET или POST или кука тогда это все попадет в REQUEST
  56. Neo ( 17:37:18 )
  57. этакий универсальный метод
  58. Енот Потаскун ( 17:37:30 )
  59. лех ломануть сайт через это г**о можно?
  60. Neo ( 17:37:38 )
  61. может и бакдор конечно
  62. Neo ( 17:38:02 )
  63. торетически если это знать и найти xss на сайте, можно те подсунуть че угодно
  64. Neo ( 17:38:05 )
  65. можно
  66.  
#10 2 декабря 2011 в 22:03

вот помню в наше время, куки были гораздо целомудреннее.

picaboo

laughlaughlaugh
#11 3 декабря 2011 в 00:08
Смысл темы совершенно непонятен.
поехали по порядку
1.

SELECT * FROM cms_components WHERE id>0 ORDER BY 0a

NickSolver
далее

вобще данные ни как не проверяются, можешь например делать запрос so="union select..."

NickSolver
ну ну конечно, sql инъект после order by ну никак не крутится через union select.
Вообще в админке много уязвимостей типа sql injection, но в них смысла нет так как, если злоумышленник получил права админа он без труда завладеет бд без левых уязвимостей. Админка конечно есть будет потенциально опасным местом и там есть еще над чем поработать😉Fuze обо всем этом уведомлен и думаю без внимания он это не оставит, не смотря на то, что проблема не слишком уж страшная). В любых случаях говоря об уязвимостях или как там они типерь называются? "Фичи"? следует предоставлять PoC (пример), говорить можно обо всем, фантазировать можно обо всем и с энтузиазмом, а показывать ситуацию такой какая она есть можно вообще как угодно, лишь бы правдиво и обоснованно.
2.

Neo ( 17:38:02 )торетически если это знать и найти xss на сайте, можно те подсунуть че угодно

NickSolver
Если найти XSS на сайте то и без всяких админок можно чего угодно и куда угодно насувать. Но надо сначала найти ;)
3.

Проблема решилась созданием колонки 0a

NickSolver
laugh
#12 4 декабря 2011 в 02:04

Смысл темы совершенно непонятен.

The matrix
1. Дать возможность постебаться тем, кто сидит у камина в безопасности.
2. Проинформировать сообщество о появившейся, возможно новой, уязвимости собственного сайта или ICMS. Если это из разряда "сам зевнул" см. пункт 1.
3. Поделиться со всеми неприятностью, описать её, заговорить зубы и коварно попытаться получить дельный совет по исправлению данной неприятности. Если это из разряда "что-то новенькое".
4. Лучше перебдеть.

NickSolver, у меня на http://z180273.infobox.ru/, видимо то же самое. Версия 1.9.
Зашёл в админку аккаунта, оттуда в FTP-менеджер поработал часик с файлами и только тогда обратил внимание (лёгкий смех), что на аккаунт добавлено мегабайт 300 контрабанды (смех). Со службой поддержки, разумеется, связываться не стал (смех), решил разобраться сам (громкий смех). (Что я всё буду вам подсказывать — сами знаете, когда смеяться). Ну и нашёл. Да, в папке cahce. Были помню какие-то файлы php, ещё что-то… Дальше всё смутно: попытался всё это удалить, удар по голове… Очнулся в админке аккаунта. Ключи ни к FTP, ни к админке сайта не работают. С поддержкой не общался — у меня пробный месяц и тестовый сайт, не жалко. Ну а так, видимо, пришлось бы попросить местное МЧС зачистить полностью территорию аккаунта, залить (или установить с нуля?) заново систему, сделать бэкап БД.
И да (сам виноват):
1. Для php не была настроена дериктива open_basedir;
2. Префикс БД не был изменён;
И 3. Чего ещё не сделал нужного для безопасности 1.9, чего нет в этом блоге?
#13 5 декабря 2011 в 05:13

1. Для php не была настроена дериктива open_basedir;
2. Префикс БД не был изменён;

ded-pikto
1. Один open_basedir ну никак не помешает взломам.
2. вообще никак не поможет.
поможет правильное разграничение прав доступа
поможет Basic authentication
поможет своевременное обновление cms
поможет воздержание от установки кривых компонентов, модулей от Васи Пупкина, заброшенных/сомнительных cms, форумов
много чего может помочь, все во многом зависит от конкретной ситуации
#14 19 декабря 2011 в 22:59
The matrix, спасибо! Будем работать над собой!..
#15 19 декабря 2011 в 23:22
laughТеперь подумал) буду каждый день БД и файло сохранять! А вообще пора уже сделать компонент, который будет делать бэкапы и слать их на фтп!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.