SVN хак – пишу граббер

Сегодня на хабре был опубликован отчет об обнаруженной уязвимости (точнее о распространенной ошибке при работе через) SVN.

Суть его заключается в том, что если сайт разрабатывается через систему SVN, то многие разработчики вместо команды svn export  просто копируют директорию проекта из рабочих файлов SVN на продакшн – сервер и забывают, что при этом копируются скрытые папки ./svn в том числе ./svn/entries – список содержимого каталога и ./svn/text-base/ в которой и находятся исходники с дополнительным расширением  .svn-base В результате можно стянуть исходный код сайта, т.к. веб-сервер не всегда передает интерпретатору файлы с расширением .svn-base и они будут передаваться plaintext-ом

Так что, не теряя времени, написал на Python граббер для сайтов, которые еще не успели дыры закрыть…

Последняя версия – СКАЧАТЬ

Версия 0.5 – СКАЧАТЬ
Версия 0.4 – СКАЧАТЬ
Версия 0.3 – СКАЧАТЬ
Версия 0.2 – СКАЧАТЬ
Версия 0.1 – СКАЧАТЬ

20 thoughts on “SVN хак – пишу граббер

  1. Andy

    И меня пытались ломать сегодня почитав этот блог судя по статистике. какое счастье что я не пользую svn

    Reply
  2. P.S. Post author

    Andy: ну, на самом деле проблема не в использовании SVN как таковом, а в его неправильном использовании

    Reply
  3. Mixailo

    Похоже, скоро тут соберется тусовка, пришедшая по ссылке из лога)
    Кстати, прикольная идея)

    Reply
  4. Detot

    Я тоже пришел по логу.
    смотрю, юзер агент странный, ссылкой, ну и я завалился.

    Reply
  5. P.S. Post author

    А народ сорри…
    Я просто в какой-то момент кажется в 3-ей или 4-й версии граббера решил провести эксперимент и вставил в user-agent сслыку на пост)))

    Reply
  6. Вася

    Молодец “P.S.”, сразу спалился сканированием моего сайта.

    Reply
  7. P.S. Post author

    Ну почему-ж спалился…
    Я просто скрипт выложил, а сканировать мог кто угодно, кто этот скрипт скачал и запустил…

    Хотя с другой стороны, я тож этим делом не побрезговал – около 30 гигов “интернета” накачал, потом надоело…

    Reply
  8. aldonin

    А у меня чето не хочет запускаться под виндой…Пишет синтакс ошибка.

    Reply
    1. P.S. Post author

      Если не сложно, скопипасти целиком как запускал и что он напечатал. Под Windows я запускать не пробовал даже

      Reply
  9. -Onotole-

    Под виндой ошибка, ругается на синтаксис, 41 строка.
    Может ошибка и нюбовская, простите, в Питоне я – ноль.

    Reply
    1. P.S. Post author

      А версия 0.4 ?
      Очень странно на самом деле. Можете полный текст скопипастить что там в ошибке пишет?

      Reply
    1. P.S. Post author

      Эх, а говорили что в 41 строке ошибка.

      Вообще скачайте версию 0.5 http://seriyps.ru/blog/wp-content/uploads/2009/09/svn_grabber_0.5.tar.bz2 и запускайте не как
      ...>V:\\Svn_grabber_0.5\grabber.py
      а установите python (версия 2.6 желательно) и запускайте так:
      ...>C:\\path_to_python\python.exe V:\\Svn_grabber_0.5\grabber.py
      здесь path_to_python это путь к файлу python.exe который установит инсталлятор питона

      Reply
  10. -Onotole-

    Понял, спасибо 🙂
    В версии 0.3 было в 41ой строчке, в 0.4 – 43 строчка.
    Еще раз спасибо, сейчас опробую 🙂

    Reply
  11. ZiR0

    Если у кого проблемы со скачкой, допустим изображений.
    То ищем 172 строку и меняем “w” на “wb” (под виндой точно работает)

    P.S. Автор этого фикса http://seriyps.ru
    🙂

    Reply
  12. fixer

    /svn_grabber_latest$ sudo python grabber.py
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python2.7/threading.py”, line 801, in __bootstrap_inner
    self.run()
    File “grabber.py”, line 111, in run
    while self.__setNextDomain():
    File “grabber.py”, line 232, in __setNextDomain
    os.mkdir(self.domainSaveDir)
    OSError: [Errno 2] No such file or directory: ‘test/https://www.***.kg/.svn/entries’
    Дает такую ошибку хотя с веба все граится в ручном режиме (((

    Reply

Leave a Reply to Вася Cancel reply

Your email address will not be published. Required fields are marked *