3
@6^t                 @   s0   d dl Z d dlmZmZmZ G dd deZdS )    N)
SpiderFootSpiderFootPluginSpiderFootEventc               @   s>   e Zd ZdZi ZdZe fddZdd Zdd Z	d	d
 Z
dS )sfp_webserverzWeb Server:Footprint,Investigate,Passive:Content Analysis::Obtain web server banners to identify versions of web servers being used.Nc             C   s>   || _ | j | _d| _x"t|j D ]}|| | j|< q$W d S )NzTarget Website)sftempStorageresults__dataSource__listkeysopts)selfsfcuserOptsopt r   8/var/www/spiderfoot.crq.systems/modules/sfp_webserver.pysetup   s
    
zsfp_webserver.setupc             C   s   dgS )NWEBSERVER_HTTPHEADERSr   )r   r   r   r   watchedEvents"   s    zsfp_webserver.watchedEventsc             C   s   ddddgS )NWEBSERVER_BANNERWEBSERVER_TECHNOLOGYLINKED_URL_INTERNALLINKED_URL_EXTERNALr   )r   r   r   r   producedEvents(   s    zsfp_webserver.producedEventsc             C   s  |j }|j}|j}|j}| jjd| d |  || jkr>d S d| j|< | j j| jj	|sn| jjd d S yt
j|}|d krd S W n. tk
r } z| jjdd d S d }~X nX d|kr:|d jds|d jd	r:| j j| jj	|d rtd
|d | j|}| j| ntd|d | j|}| j| d|krx|d jdD ]}	xz|	jdD ]l}
|
jds|
jd	rd| j j| jj	|
rtd
|
| j|}| j| ntd|
| j|}| j| qdW qTW d|kr"td|d | j|}| j| | jjd|d  d | d  d|krNtd|d | j|}| j| d S d }d|krnd|d krnd}d|krd|d krd}d|krd|d krd}d|krd}|d k	rd|krd}|d k	rd|krd}|d k	rtd|| j|}| j| d S )NzReceived event, z, from Tz9Not collecting web server information for external sites.zBReceived HTTP headers from another module in an unexpected format.Flocationzhttp://zhttps://r   r   zcontent-security-policy; serverr   zFound web server: z ()zx-powered-byr   z
set-cookieZPHPSESSZPHPZ
JSESSIONIDzJava/JSPzASP.NETzx-aspnet-versionz.jspz.php)	eventTypemoduledataactualSourcer   debugr   	getTargetmatchesurlFQDNjsonloadsBaseExceptionerror
startswithr   __name__notifyListenerssplitinfo)r   event	eventNamesrcModuleName	eventDataeventSourcejdataeevt	directivestringtechr   r   r   handleEvent-   sx    









 





zsfp_webserver.handleEvent)r-   
__module____qualname____doc__r   r   dictr   r   r   r<   r   r   r   r   r      s   	r   )r(   sflibr   r   r   r   r   r   r   r   <module>   s   