HELLO v3!!!
This commit is contained in:
97
spec/app/finders/wp_version/atom_generator_spec.rb
Normal file
97
spec/app/finders/wp_version/atom_generator_spec.rb
Normal file
@@ -0,0 +1,97 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe WPScan::Finders::WpVersion::AtomGenerator do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { Pathname.new(FINDERS_FIXTURES).join('wp_version', 'atom_generator') }
|
||||
let(:atom_fixture) { File.read(fixtures.join('feed', 'atom')) }
|
||||
|
||||
describe '#passive, #aggressive' do
|
||||
before do
|
||||
allow(target).to receive(:sub_dir).and_return(false)
|
||||
|
||||
stub_request(:get, target.url).to_return(body: File.read(homepage_fixture))
|
||||
end
|
||||
|
||||
context 'when no atom links in homepage' do
|
||||
let(:homepage_fixture) { fixtures.join('no_links.html') }
|
||||
|
||||
its(:passive) { should eql [] }
|
||||
|
||||
it 'returns the expected from #aggressive' do
|
||||
stub_request(:get, target.url('feed/atom/')).to_return(body: atom_fixture)
|
||||
stub_request(:get, target.url('?feed=atom'))
|
||||
|
||||
expect(finder.aggressive).to eql [
|
||||
WPScan::WpVersion.new(
|
||||
'4.0',
|
||||
confidence: 80,
|
||||
found_by: 'Atom Generator (Aggressive Detection)',
|
||||
interesting_entries: [
|
||||
"#{target.url('feed/atom/')}, Match: '<generator uri=\"https://wordpress.org/\" version=\"4.0\">" \
|
||||
"WordPress</generator>'"
|
||||
]
|
||||
)
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
context 'when atom links in homepage' do
|
||||
let(:homepage_fixture) { File.join(fixtures, 'links.html') }
|
||||
|
||||
it 'returns the expected from #passive' do
|
||||
stub_request(:get, target.url('?feed=atom')).to_return(body: atom_fixture)
|
||||
|
||||
expect(finder.passive).to eql [
|
||||
WPScan::WpVersion.new(
|
||||
'4.0',
|
||||
confidence: 80,
|
||||
found_by: 'Atom Generator (Passive Detection)',
|
||||
interesting_entries: [
|
||||
"#{target.url('?feed=atom')}, Match: '<generator uri=\"https://wordpress.org/\" version=\"4.0\">" \
|
||||
"WordPress</generator>'"
|
||||
]
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
context 'when :mixed mode' do
|
||||
it 'avoids checking existing URL/s from #passive' do
|
||||
stub_request(:get, target.url('feed/atom/')).to_return(body: atom_fixture)
|
||||
|
||||
expect(finder.aggressive(mode: :mixed)).to eql [
|
||||
WPScan::WpVersion.new(
|
||||
'4.0',
|
||||
confidence: 80,
|
||||
found_by: 'Atom Generator (Aggressive Detection)',
|
||||
interesting_entries: [
|
||||
"#{target.url('feed/atom/')}, Match: '<generator uri=\"https://wordpress.org/\" version=\"4.0\">" \
|
||||
"WordPress</generator>'"
|
||||
]
|
||||
)
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
context 'when no mode' do
|
||||
it 'checks all the URLs' do
|
||||
stub_request(:get, target.url('feed/atom/')).to_return(body: atom_fixture)
|
||||
stub_request(:get, target.url('?feed=atom'))
|
||||
|
||||
expect(finder.aggressive).to eql [
|
||||
WPScan::WpVersion.new(
|
||||
'4.0',
|
||||
confidence: 80,
|
||||
found_by: 'Atom Generator (Aggressive Detection)',
|
||||
interesting_entries: [
|
||||
"#{target.url('feed/atom/')}, Match: '<generator uri=\"https://wordpress.org/\" version=\"4.0\">" \
|
||||
"WordPress</generator>'"
|
||||
]
|
||||
)
|
||||
]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
10
spec/app/finders/wp_version/rdf_generator_spec.rb
Normal file
10
spec/app/finders/wp_version/rdf_generator_spec.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe WPScan::Finders::WpVersion::RDFGenerator do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { File.join(FINDERS_FIXTURES, 'wp_version', 'rdf_generator') }
|
||||
|
||||
xit
|
||||
end
|
||||
49
spec/app/finders/wp_version/readme_spec.rb
Normal file
49
spec/app/finders/wp_version/readme_spec.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe WPScan::Finders::WpVersion::Readme do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { File.join(FINDERS_FIXTURES, 'wp_version', 'readme') }
|
||||
let(:readme_url) { url + 'readme.html' }
|
||||
|
||||
describe '#aggressive' do
|
||||
before { stub_request(:get, readme_url).to_return(body: File.read(File.join(fixtures, file))) }
|
||||
|
||||
after do
|
||||
expect(target).to receive(:sub_dir).and_return(false)
|
||||
expect(finder.aggressive).to eql @expected
|
||||
end
|
||||
|
||||
context 'when no version' do
|
||||
let(:file) { 'no_version.html' }
|
||||
|
||||
it 'returns nil' do
|
||||
@expected = nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when invalid version number' do
|
||||
let(:file) { 'invalid.html' }
|
||||
|
||||
it 'returns nil' do
|
||||
@expected = nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when present and valid' do
|
||||
let(:file) { '4.0.html' }
|
||||
|
||||
it 'returns the expected version' do
|
||||
@expected = WPScan::WpVersion.new(
|
||||
'4.0',
|
||||
confidence: 90,
|
||||
found_by: 'Readme (Aggressive Detection)',
|
||||
interesting_entries: [
|
||||
"#{readme_url}, Match: 'Version 4.0'"
|
||||
]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
10
spec/app/finders/wp_version/rss_generator_spec.rb
Normal file
10
spec/app/finders/wp_version/rss_generator_spec.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe WPScan::Finders::WpVersion::RSSGenerator do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { File.join(FINDERS_FIXTURES, 'wp_version', 'rss_generator') }
|
||||
|
||||
xit
|
||||
end
|
||||
10
spec/app/finders/wp_version/unique_fingerprinting_spec.rb
Normal file
10
spec/app/finders/wp_version/unique_fingerprinting_spec.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe WPScan::Finders::WpVersion::UniqueFingerprinting do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { File.join(FINDERS_FIXTURES, 'wp_version', 'unique_fingerprinting') }
|
||||
|
||||
xit
|
||||
end
|
||||
Reference in New Issue
Block a user