1##
2# This file is part of WhatWeb and may be subject to
3# redistribution and commercial restrictions. Please see the WhatWeb
4# web site for more information on licensing and terms of use.
5# http://www.morningstarsecurity.com/research/whatweb
6##
7# Version 0.2 # 2016-04-17 # Andrew Horton
8# Added website parameter
9##
10Plugin.define "WSN-Links" do
11author "Brendan Coles <bcoles@gmail.com>" # 2011-03-16
12version "0.2"
13description "WSN Links is a links directory with google pageranks, link checking, reciprocal linking facilities and much more. Multilingual and highly extensible, it offers more than you could imagine in a links directory."
14website "http://www.wsnlinks.com/"
15
16# Google results as at 2011-03-16 #
17# 12 results for "WSN Links is unable to render this page. The reason is described below: " intitle:"WSN Links"
18# 14 results for intitle:"WSN Links" ext:php "Non-numeric id value given in creating object"
19
20
21
22# Matches #
23matches [
24
25# Admin Page # Title # adminlogin.php
26{ :text=>'<title>WSN Links Administration Panel</title>' },
27
28# Admin # Version Detection # adminlogin.php
29{ :version=>/<span class="group" style="margin-left: 8px;">WSN Links ([\d\.]+) Admin Login<\/span>/ },
30
31# Admin # Version Detection # adminlogin.php
32{ :version=>/<span class="group">WSN Links ([\d\.]+) Admin Panel<\/span>/ },
33
34# HTML Comment # Shared with other WSN Software products
35{ :certainty=>25, :text=>'<!-- place any jquery-dependent script tags that need to be before the /head tag in here -->' },
36
37# boxtitle # Shared with other WSN Software products
38{ :certainty=>25, :regexp=>/<div class="boxtitle" on[c|C]lick="minmax\('[a-z]+box'\)"><img src=/ },
39
40# License Agreement # setup.php
41{ :text=>'<textarea readonly rows="20" cols="75">WSN Links License Agreement' },
42
43]
44
45# Passive #
46def passive
47	m=[]
48
49	# Version Detection
50	if @body =~ /<title>WSN Links<\/title>/
51
52		# Error Page
53		if @body =~ /<p>WSN Links is unable to render this page. The reason is described below:<\/p>/ and @body =~ /<p>Version info: WSN Links ([\d\.]+)<\/p>/
54			m << { :version=>@body.scan(/<p>Version info: WSN Links ([\d\.]+)<\/p>/) }
55		end
56
57		# Error Page # no id parameter
58		if @body =~ /<div class="main">Non-numeric id value given in creating object.<\/div>/ and @body =~ /<p>WSN Links ([\d\.]+)<\/p>/
59			m << { :version=>@body.scan(/<p>WSN Links ([\d\.]+)<\/p>/) }
60		end
61
62	end
63
64	# Return passive matches
65	m
66end
67
68end
69
70