U
    @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:   || _ |  | _d| _t| D ]}|| | j|< q"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d|j   d S |j}|j }|j}|j}| jd| d |  |  | j|sz| jd|  d S || j	krt
 | j	|< n| jd d S tD ]}|| j	| krqt| D ]}t|tj}t||}	t|	dkr|| j	| kr| jd| d	 |  | j	| |g | j	|< t||| j|}
| |
 qqt| j	| dkr| jd
| d  td|| j|}
| |
 tdtj}t||}	t|	dkr|	D ]R}d|kr|  | j|s| jd|  td|| j|}
| |
 qd 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;   sT    


" zsfp_pageinfo.handleEvent)r0   
__module____qualname____doc__r   r   dictr   r   r   r=   r   r   r   r   r      s   	r   )	r*   sflibr   r   r   rA   r   r)   r   r   r   r   r   <module>   s   

