U
    @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:   || _ |  | _d| _t| D ]}|| | j|< q"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d| d |  || jkr>d S d| j|< |  | j	|sn| jd d S zt
|}|d krW d S W n6 tk
r } z| jdd W Y d S d }~X Y nX d|krD|d ds|d d	rD|  | j	|d r&td
|d | j|}| | ntd|d | j|}| | d|kr|d dD ]~}	|	dD ]l}
|
ds|
d	rj|  | j	|
rtd
|
| j|}| | ntd|
| j|}| | qjq\d|kr$td|d | j|}| | | jd|d  d | d  d|krPtd|d | j|}| | d S d }d|krpd|d krpd}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|}| | 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-   s    








 
 

 


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   