Показать сообщение отдельно
Старый 19.07.2012, 09:49   #3
Beched
 
Регистрация: 06.07.2010
Сообщений: 403
Репутация: 118
По умолчанию

В случае PHP пасхальные яйца смысла не имеют, ибо они работают лишь при expose_php = 1, а при этой настройке в заголовке пишется полная версия PHP в X-Powered-By.

Кроме того, для ASP.NET тоже пишется в заголовок X-Powered-By + пишется версия в заголовок X-AspNet-Version. Зависимостей не знаю.

Собственно, у себя я ещё юзаю фингерпринт RoR от BlackFan'а. Выходит так:

Код:
        if (search( '(\.php[^\w])', self.args[ 'url' ].lower() ) != None) or (self.hdrs[ 'X-Powered-By' ] != None and 'PHP' in self.hdrs[ 'X-Powered-By' ]) or (self.hdrs[ 'Set-Cookie' ] != None and 'PHP' in self.hdrs[ 'Set-Cookie' ]):
            self.phptest()
        elif (search( '(\.aspx?[^\w])', self.args[ 'url' ].lower() ) != None or (self.hdrs[ 'X-Powered-By' ] != None and 'ASP.NET' in self.hdrs[ 'X-Powered-By' ]) ):
            self.aspnettest()
        elif self.makereq( self.args[ 'url' ] + '?a=a&a[]=a' )[ 1 ] == 500: print( '==========\nRuby on Rails framework possibly detected' )
А топик полезный, буду расширять коллекцию сигнатур.

Кстати здоровые сканеры кажется ещё не дожили до того, чтобы оптимизировать сканирование под конкретную технологию автоматически.
Т.е., допустим, найдётся папка /forum/, отвечающая сигнатурам PHP -- ищет php-баги, а найдётся каталог с ASP.NET (он может быть вынесен на другой серв) -- оптимизируем под дотнет скан в этом каталоге.

P.S. В DJango ещё csrfmiddlewaretoken есть.

Последний раз редактировалось Beched; 19.07.2012 в 12:17..
Beched вне форума   Ответить с цитированием