Path: blob/master/spec/app/finders/passwords/xml_rpc_spec.rb
1483 views
# frozen_string_literal: true12describe WPScan::Finders::Passwords::XMLRPC do3subject(:finder) { described_class.new(target) }4let(:target) { WPScan::Model::XMLRPC.new(url) }5let(:url) { 'http://ex.lo/xmlrpc.php' }67RESPONSE_403_BODY = '<?xml version="1.0" encoding="UTF-8"?>8<methodResponse>9<fault>10<value>11<struct>12<member>13<name>faultCode</name>14<value><int>403</int></value>15</member>16<member>17<name>faultString</name>18<value><string>Incorrect username or password.</string></value>19</member>20</struct>21</value>22</fault>23</methodResponse>'2425describe '#attack' do26let(:wordlist_path) { FINDERS_FIXTURES.join('passwords.txt').to_s }2728context 'when no valid credentials' do29before do30stub_request(:post, url).to_return(status: status, body: RESPONSE_403_BODY)3132finder.attack(users, wordlist_path)33end3435let(:users) { %w[admin].map { |username| WPScan::Model::User.new(username) } }3637context 'when status = 200' do38let(:status) { 200 }3940its('progress_bar.log') { should be_empty }41end4243context 'when status = 403' do44let(:status) { 403 }4546its('progress_bar.log') { should be_empty }47end48end49end50end515253