3
@6^%                 @   sp   d dl Z d dlmZmZmZ eeddgedddgedged	ged
gedgdZG dd deZdS )    N)
SpiderFootSpiderFootPluginSpiderFootEventztext/javascriptz<script z<form zmethod=[PG]z<input z<input.*type=["']*passwordztype=["']*filez<applet z
\.swf[ '"])URL_JAVASCRIPTURL_FORMURL_PASSWORD
URL_UPLOADURL_JAVA_APPLET	URL_FLASHc               @   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_pageinfozPage Info:Footprint,Investigate,Passive:Content Analysis::Obtain information about web pages (do they take passwords, do they contain forms, etc.)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   7/var/www/spiderfoot.crq.systems/modules/sfp_pageinfo.pysetup'   s
    
zsfp_pageinfo.setupc             C   s   dgS )NTARGET_WEB_CONTENTr   )r   r   r   r   watchedEvents0   s    zsfp_pageinfo.watchedEventsc             C   s   ddddddddgS )	N
URL_STATICr   r   r   r   r	   r
   PROVIDER_JAVASCRIPTr   )r   r   r   r   producedEvents6   s    zsfp_pageinfo.producedEventsc             C   s  d|j kr | jjd|j   d S |j}|j }|j}|j}| jjd| d |  | j j| jj|sz| jjd|  d S || j	krt
 | j	|< n| jjd d S xtD ]}|| j	| krqxt| D ]}tj|tj}tj||}	t|	dko|| j	| kr| jjd| d	 |  | j	| |g | j	|< t||| j|}
| j|
 qW qW t| j	| dkr| jjd
| d  td|| j|}
| j|
 tjdtj}tj||}	t|	dkrx\|	D ]T}d|kr| j j| jj| r| jjd|  td|| j|}
| j|
 qW d S )N
sfp_spiderzIgnoring web content from zReceived event, z, from z*Not gathering page info for external site z4Already checked this page for a page type, skipping.r   zMatched z in content from z	Treating z as URL_STATICr   z<script.*src=['"]?([^'">]*)z://z'Externally hosted Javascript found at: r   )moduler   debug	eventTypedataactualSource	getTargetmatchesurlFQDNr   r   regexpsrecompile
IGNORECASEfindallleninfor   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDataeventSource	regexpGrpregexrxr&   evtpatmatchr   r   r   handleEvent;   sP    




$
zsfp_pageinfo.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   r   r   r   <module>   s   
