Python for Hacking 2 Часть - Расширения для Burp Suite
moderator E7
Доброго времени суток! Сегодня расскажу что надо знать, чтобы написать своё собственное расширение на Burp Suite.
Burp + Python
Burp Suite написан на Java , поэтому для написание под него расширений используется интерпритатор питона - Jython. Но, так как последний раз когда обновлялся Jython , помнят только динозавры. Базируется сам интерпритатор Jython на Python2, а это означает что и синтаксис будет немного отличаться от Python3.
Различия Python2 от Python3
Первое отличие. Оператор print был заменён функцией print(), с именованными аргументами для замены большей части синтаксиса старого оператора print.
Примеры:
Python2: print "The answer is", 2*2
Python3: print("The answer is", 2*2)
Второе отличие. Некоторые хорошо известные методы не возвращают списки в Python 3:
- Методы словарей dict.keys(), dict.items() и dict.values() возвращают "отображения" вместо списков. Например, больше не работает: k = d.keys(); k.sort(). Используйте k = sorted(d).
- Соответственно, методы dict.iterkeys(), dict.iteritems() и dict.itervalues() более не поддерживаются.
- map() и filter() возвращают итераторы. Если вам действительно нужен список, быстрым исправлением станет list(map(...)), но часто лучшим исправлением будет использование генераторов списков (особенно когда оригинальный код использует лямбда-выражения), либо переписать код так, чтобы ему не нужен был список как таковой. Особенно сложно, что map() вызывает побочные эффекты функции; правильное преобразование заключается в использовании цикла (создание списка просто расточительно).
- range() теперь ведёт себя как xrange(), но работает со значениями любого размера. xrange() больше не существует.
- zip() возвращает итератор.
Пожалуй , это самые основные по-моему мнению , ещё отличаются названия целых чисел , операторы сравнения и т.д
Модуль burp на python - burp
С любовью от E7TEAM ;)