pwn 0.4.701 → 0.4.702
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/pwn_burp_suite_pro_active_scan +2 -1
- data/bin/pwn_domain_reversewhois +7 -6
- data/bin/pwn_owasp_zap_active_scan +3 -2
- data/bin/pwn_pastebin_sample_filter +5 -3
- data/bin/pwn_web_cache_deception +10 -7
- data/bin/pwn_www_checkip +5 -4
- data/bin/pwn_www_uri_buster +5 -4
- data/bin/pwn_xss_dom_vectors +11 -8
- data/lib/pwn/plugins/baresip.rb +3 -2
- data/lib/pwn/plugins/beef.rb +5 -2
- data/lib/pwn/plugins/burp_suite.rb +7 -5
- data/lib/pwn/plugins/defect_dojo.rb +5 -3
- data/lib/pwn/plugins/github.rb +2 -1
- data/lib/pwn/plugins/hacker_one.rb +4 -2
- data/lib/pwn/plugins/ibm_appscan.rb +13 -6
- data/lib/pwn/plugins/ip_info.rb +4 -2
- data/lib/pwn/plugins/jira_server.rb +2 -1
- data/lib/pwn/plugins/nessus_cloud.rb +2 -1
- data/lib/pwn/plugins/open_ai.rb +3 -1
- data/lib/pwn/plugins/owasp_zap.rb +2 -1
- data/lib/pwn/plugins/shodan.rb +2 -1
- data/lib/pwn/plugins/transparent_browser.rb +22 -32
- data/lib/pwn/plugins/twitter_api.rb +5 -2
- data/lib/pwn/plugins/vsphere.rb +1 -2
- data/lib/pwn/version.rb +1 -1
- data/lib/pwn/www/app_cobalt_io.rb +17 -11
- data/lib/pwn/www/bing.rb +7 -4
- data/lib/pwn/www/bug_crowd.rb +17 -11
- data/lib/pwn/www/checkip.rb +5 -3
- data/lib/pwn/www/coinbase_pro.rb +16 -10
- data/lib/pwn/www/duckduckgo.rb +13 -6
- data/lib/pwn/www/facebook.rb +14 -8
- data/lib/pwn/www/google.rb +10 -6
- data/lib/pwn/www/hacker_one.rb +14 -8
- data/lib/pwn/www/linkedin.rb +14 -8
- data/lib/pwn/www/pandora.rb +14 -8
- data/lib/pwn/www/pastebin.rb +7 -3
- data/lib/pwn/www/paypal.rb +34 -26
- data/lib/pwn/www/synack.rb +17 -11
- data/lib/pwn/www/torch.rb +10 -5
- data/lib/pwn/www/trading_view.rb +17 -11
- data/lib/pwn/www/twitter.rb +18 -10
- data/lib/pwn/www/uber.rb +14 -8
- data/lib/pwn/www/upwork.rb +14 -8
- data/lib/pwn/www/youtube.rb +7 -4
- metadata +2 -6
- data/bin/pwn_arachni +0 -157
- data/bin/pwn_arachni_rest +0 -174
@@ -32,7 +32,9 @@ module PWN
|
|
32
32
|
http_headers[:authorization] = "Basic #{authz_str}"
|
33
33
|
|
34
34
|
@@logger.info("Logging into TwitterAPI REST API: #{base_api_uri}")
|
35
|
-
|
35
|
+
browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
|
36
|
+
rest_client = browser_obj[:browser]::Request
|
37
|
+
|
36
38
|
response = rest_client.execute(
|
37
39
|
method: :post,
|
38
40
|
url: "#{base_api_uri}/oauth2/token",
|
@@ -69,7 +71,8 @@ module PWN
|
|
69
71
|
port = bearer_token[:port]
|
70
72
|
base_zap_api_uri = "http://#{host}:#{port}"
|
71
73
|
|
72
|
-
|
74
|
+
browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
|
75
|
+
rest_client = browser_obj[:browser]::Request
|
73
76
|
|
74
77
|
case http_method
|
75
78
|
when :get
|
data/lib/pwn/plugins/vsphere.rb
CHANGED
@@ -4,8 +4,7 @@ require 'rbvmomi'
|
|
4
4
|
|
5
5
|
module PWN
|
6
6
|
module Plugins
|
7
|
-
# This plugin is used for interacting w/ VMware ESXI's REST API
|
8
|
-
# the 'rest' browser type of PWN::Plugins::TransparentBrowser.
|
7
|
+
# This plugin is used for interacting w/ VMware ESXI's REST API
|
9
8
|
module Vsphere
|
10
9
|
@@logger = PWN::Plugins::PWNLogger.create
|
11
10
|
|
data/lib/pwn/version.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://app.cobalt.io')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -35,6 +36,8 @@ module PWN
|
|
35
36
|
username = opts[:username].to_s.scrub.strip.chomp
|
36
37
|
password = opts[:password]
|
37
38
|
|
39
|
+
browser = browser_obj[:browser]
|
40
|
+
|
38
41
|
if password.nil?
|
39
42
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
40
43
|
else
|
@@ -42,19 +45,19 @@ module PWN
|
|
42
45
|
end
|
43
46
|
mfa = opts[:mfa]
|
44
47
|
|
45
|
-
|
48
|
+
browser.goto('https://app.cobalt.io/users/sign_in')
|
46
49
|
|
47
50
|
# id: 'user_email' doesn't work
|
48
|
-
|
51
|
+
browser.text_field(index: 9).wait_until(&:present?).set(username)
|
49
52
|
# id: 'user_password' doesn't work
|
50
|
-
|
53
|
+
browser.text_field(index: 10).wait_until(&:present?).set(password)
|
51
54
|
# name: 'commit' doesn't work
|
52
|
-
|
55
|
+
browser.button(index: 6).click! # no name or id in button element
|
53
56
|
|
54
57
|
if mfa
|
55
|
-
until
|
56
|
-
|
57
|
-
|
58
|
+
until browser.url == 'https://app.cobalt.io/dashboard'
|
59
|
+
browser.text_field(id: 'code').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
|
60
|
+
browser.button(name: 'commit').click!
|
58
61
|
sleep 3
|
59
62
|
end
|
60
63
|
print "\n"
|
@@ -72,8 +75,10 @@ module PWN
|
|
72
75
|
|
73
76
|
public_class_method def self.logout(opts = {})
|
74
77
|
browser_obj = opts[:browser_obj]
|
75
|
-
|
76
|
-
browser_obj
|
78
|
+
|
79
|
+
browser = browser_obj[:browser]
|
80
|
+
browser.li(class: 'user-dropdown').wait_until(&:present?).click!
|
81
|
+
browser.link(index: 10).wait_until(&:present?).click!
|
77
82
|
|
78
83
|
browser_obj
|
79
84
|
rescue StandardError => e
|
@@ -110,7 +115,8 @@ module PWN
|
|
110
115
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
111
116
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
112
117
|
)
|
113
|
-
|
118
|
+
browser = browser_obj[:browser]
|
119
|
+
puts browser.public_methods
|
114
120
|
|
115
121
|
browser_obj = #{self}.login(
|
116
122
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/bing.rb
CHANGED
@@ -13,7 +13,8 @@ module PWN
|
|
13
13
|
public_class_method def self.open(opts = {})
|
14
14
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
15
15
|
|
16
|
-
browser_obj
|
16
|
+
browser = browser_obj[:browser]
|
17
|
+
browser.goto('https://www.bing.com')
|
17
18
|
|
18
19
|
browser_obj
|
19
20
|
rescue StandardError => e
|
@@ -30,8 +31,9 @@ module PWN
|
|
30
31
|
browser_obj = opts[:browser_obj]
|
31
32
|
q = opts[:q].to_s
|
32
33
|
|
33
|
-
browser_obj
|
34
|
-
|
34
|
+
browser = browser_obj[:browser]
|
35
|
+
browser.text_field(name: 'q').wait_until(&:present?).set(q)
|
36
|
+
browser.button(id: 'sb_form_go').click!
|
35
37
|
|
36
38
|
browser_obj
|
37
39
|
rescue StandardError => e
|
@@ -68,7 +70,8 @@ module PWN
|
|
68
70
|
browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
69
71
|
proxy: 'optional scheme://proxy_host:port || tor'
|
70
72
|
)
|
71
|
-
|
73
|
+
browser = browser_obj[:browser]
|
74
|
+
puts browser.public_methods
|
72
75
|
|
73
76
|
browser_obj = #{self}.search(
|
74
77
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/bug_crowd.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://bugcrowd.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -35,6 +36,8 @@ module PWN
|
|
35
36
|
username = opts[:username].to_s.scrub.strip.chomp
|
36
37
|
password = opts[:password]
|
37
38
|
|
39
|
+
browser = browser_obj[:browser]
|
40
|
+
|
38
41
|
if password.nil?
|
39
42
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
40
43
|
else
|
@@ -42,16 +45,16 @@ module PWN
|
|
42
45
|
end
|
43
46
|
mfa = opts[:mfa]
|
44
47
|
|
45
|
-
|
48
|
+
browser.goto('https://bugcrowd.com/user/sign_in')
|
46
49
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
+
browser.text_field(id: 'user_email').wait_until(&:present?).set(username)
|
51
|
+
browser.text_field(id: 'user_password').wait_until(&:present?).set(password)
|
52
|
+
browser.button(name: 'button').click!
|
50
53
|
|
51
54
|
if mfa
|
52
|
-
until
|
53
|
-
|
54
|
-
|
55
|
+
until browser.url == 'https://bugcrowd.com/programs'
|
56
|
+
browser.text_field(name: 'otp_attempt').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
|
57
|
+
browser.button(name: 'commit').click!
|
55
58
|
sleep 3
|
56
59
|
end
|
57
60
|
print "\n"
|
@@ -69,8 +72,10 @@ module PWN
|
|
69
72
|
|
70
73
|
public_class_method def self.logout(opts = {})
|
71
74
|
browser_obj = opts[:browser_obj]
|
72
|
-
|
73
|
-
browser_obj
|
75
|
+
|
76
|
+
browser = browser_obj[:browser]
|
77
|
+
browser.li(class: 'dropdown-hover').wait_until(&:present?).hover
|
78
|
+
browser.link(class: 'signout_link').wait_until(&:present?).click!
|
74
79
|
|
75
80
|
browser_obj
|
76
81
|
rescue StandardError => e
|
@@ -107,7 +112,8 @@ module PWN
|
|
107
112
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
108
113
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
109
114
|
)
|
110
|
-
|
115
|
+
browser = browser_obj[:browser]
|
116
|
+
puts browser.public_methods
|
111
117
|
|
112
118
|
browser_obj = #{self}.login(
|
113
119
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/checkip.rb
CHANGED
@@ -16,8 +16,9 @@ module PWN
|
|
16
16
|
public_class_method def self.open(opts = {})
|
17
17
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
18
18
|
|
19
|
-
browser_obj
|
20
|
-
|
19
|
+
browser = browser_obj[:browser]
|
20
|
+
browser.goto('http://checkip.amazonaws.com')
|
21
|
+
public_ip_address = Nokogiri::HTML.parse(browser.html).xpath('//pre').text.chomp
|
21
22
|
puts "PUBLIC IP: #{public_ip_address}"
|
22
23
|
|
23
24
|
browser_obj
|
@@ -55,7 +56,8 @@ module PWN
|
|
55
56
|
browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
56
57
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
57
58
|
)
|
58
|
-
|
59
|
+
browser = browser_obj[:browser]
|
60
|
+
puts browser.public_methods
|
59
61
|
|
60
62
|
browser_obj = #{self}.close(
|
61
63
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/coinbase_pro.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://pro.coinbase.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -35,6 +36,8 @@ module PWN
|
|
35
36
|
username = opts[:username].to_s.scrub.strip.chomp
|
36
37
|
password = opts[:password]
|
37
38
|
|
39
|
+
browser = browser_obj[:browser]
|
40
|
+
|
38
41
|
if password.nil?
|
39
42
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
40
43
|
else
|
@@ -42,17 +45,17 @@ module PWN
|
|
42
45
|
end
|
43
46
|
mfa = opts[:mfa]
|
44
47
|
|
45
|
-
|
48
|
+
browser.goto('https://pro.coinbase.com')
|
46
49
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
50
|
+
browser.span(text: 'Sign in').wait_until(&:present?).click
|
51
|
+
browser.text_field(name: 'email').wait_until(&:present?).set(username)
|
52
|
+
browser.text_field(name: 'password').wait_until(&:present?).set(password)
|
53
|
+
browser.button(text: 'Sign In').click!
|
51
54
|
|
52
55
|
if mfa
|
53
|
-
until
|
54
|
-
|
55
|
-
|
56
|
+
until browser.url.include?('https://pro.coinbase.com')
|
57
|
+
browser.text_field(name: 'token').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
|
58
|
+
browser.button(text: 'Verify').click!
|
56
59
|
sleep 3
|
57
60
|
end
|
58
61
|
print "\n"
|
@@ -70,7 +73,9 @@ module PWN
|
|
70
73
|
|
71
74
|
public_class_method def self.logout(opts = {})
|
72
75
|
browser_obj = opts[:browser_obj]
|
73
|
-
|
76
|
+
|
77
|
+
browser = browser_obj[:browser]
|
78
|
+
browser.goto('https://pro.coinbase.com/signout')
|
74
79
|
|
75
80
|
browser_obj
|
76
81
|
rescue StandardError => e
|
@@ -107,6 +112,7 @@ module PWN
|
|
107
112
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
108
113
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
109
114
|
)
|
115
|
+
browser = browser_obj[:browser]
|
110
116
|
puts browser_obj.public_methods
|
111
117
|
|
112
118
|
browser_obj = #{self}.login(
|
data/lib/pwn/www/duckduckgo.rb
CHANGED
@@ -13,7 +13,8 @@ module PWN
|
|
13
13
|
public_class_method def self.open(opts = {})
|
14
14
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
15
15
|
|
16
|
-
browser_obj
|
16
|
+
browser = browser_obj[:browser]
|
17
|
+
browser.goto('https://duckduckgo.com')
|
17
18
|
|
18
19
|
browser_obj
|
19
20
|
rescue StandardError => e
|
@@ -30,11 +31,14 @@ module PWN
|
|
30
31
|
browser_obj = opts[:browser_obj]
|
31
32
|
q = opts[:q].to_s
|
32
33
|
|
33
|
-
browser_obj
|
34
|
-
|
35
|
-
|
34
|
+
browser = browser_obj[:browser]
|
35
|
+
browser.text_field(name: 'q').wait_until(&:present?).set(q)
|
36
|
+
if browser.url == 'https://duckduckgo.com/' ||
|
37
|
+
browser.url == 'http://3g2upl4pq6kufc4m.onion/'
|
38
|
+
|
39
|
+
browser.button(id: 'search_button_homepage').click!
|
36
40
|
else
|
37
|
-
|
41
|
+
browser.button(id: 'search_button').click!
|
38
42
|
end
|
39
43
|
|
40
44
|
browser_obj
|
@@ -49,7 +53,9 @@ module PWN
|
|
49
53
|
|
50
54
|
public_class_method def self.onion(opts = {})
|
51
55
|
browser_obj = opts[:browser_obj]
|
52
|
-
|
56
|
+
|
57
|
+
browser = browser_obj[:browser]
|
58
|
+
browser.goto('http://3g2upl4pq6kufc4m.onion')
|
53
59
|
|
54
60
|
browser_obj
|
55
61
|
rescue StandardError => e
|
@@ -86,6 +92,7 @@ module PWN
|
|
86
92
|
browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
87
93
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
88
94
|
)
|
95
|
+
browser = browser_obj[:browser]
|
89
96
|
puts browser_obj.public_methods
|
90
97
|
|
91
98
|
browser_obj = #{self}.search(
|
data/lib/pwn/www/facebook.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://www.facebook.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -34,17 +35,19 @@ module PWN
|
|
34
35
|
username = opts[:username].to_s.scrub.strip.chomp
|
35
36
|
password = opts[:password]
|
36
37
|
|
38
|
+
browser = browser_obj[:browser]
|
39
|
+
|
37
40
|
if password.nil?
|
38
41
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
39
42
|
else
|
40
43
|
password = opts[:password].to_s.scrub.strip.chomp
|
41
44
|
end
|
42
45
|
|
43
|
-
|
46
|
+
browser.goto('https://www.facebook.com/login.php')
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
browser.text_field(id: 'email').wait_until(&:present?).set(username)
|
49
|
+
browser.text_field(id: 'pass').wait_until(&:present?).set(password)
|
50
|
+
browser.button(id: 'loginbutton').click!
|
48
51
|
|
49
52
|
browser_obj
|
50
53
|
rescue StandardError => e
|
@@ -58,8 +61,10 @@ module PWN
|
|
58
61
|
|
59
62
|
public_class_method def self.logout(opts = {})
|
60
63
|
browser_obj = opts[:browser_obj]
|
61
|
-
|
62
|
-
|
64
|
+
|
65
|
+
browser = browser_obj[:browser]
|
66
|
+
browser.div(id: 'logoutMenu').wait_until(&:present?).click!
|
67
|
+
browser.span(text: 'Log Out', class: '_54nh').click!
|
63
68
|
|
64
69
|
browser_obj
|
65
70
|
rescue StandardError => e
|
@@ -96,7 +101,8 @@ module PWN
|
|
96
101
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
97
102
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
98
103
|
)
|
99
|
-
|
104
|
+
browser = browser_obj[:browser]
|
105
|
+
puts browser.public_methods
|
100
106
|
|
101
107
|
browser_obj = #{self}.login(
|
102
108
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/google.rb
CHANGED
@@ -13,7 +13,8 @@ module PWN
|
|
13
13
|
public_class_method def self.open(opts = {})
|
14
14
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
15
15
|
|
16
|
-
browser_obj
|
16
|
+
browser = browser_obj[:browser]
|
17
|
+
browser.goto('https://www.google.com')
|
17
18
|
|
18
19
|
browser_obj
|
19
20
|
rescue StandardError => e
|
@@ -30,8 +31,9 @@ module PWN
|
|
30
31
|
browser_obj = opts[:browser_obj]
|
31
32
|
q = opts[:q].to_s
|
32
33
|
|
33
|
-
browser_obj
|
34
|
-
|
34
|
+
browser = browser_obj[:browser]
|
35
|
+
browser.text_field(name: 'q').wait_until(&:present?).set(q)
|
36
|
+
browser.button(text: 'Google Search').click!
|
35
37
|
|
36
38
|
browser_obj
|
37
39
|
rescue StandardError => e
|
@@ -49,8 +51,9 @@ module PWN
|
|
49
51
|
company = opts[:company].to_s.scrub
|
50
52
|
q = "site:linkedin.com inurl:in intext:\"#{company}\""
|
51
53
|
|
52
|
-
browser_obj
|
53
|
-
|
54
|
+
browser = browser_obj[:browser]
|
55
|
+
browser.text_field(name: 'q').wait_until(&:present?).set(q)
|
56
|
+
browser.button(text: 'Google Search').click!
|
54
57
|
sleep 3 # Cough: <hack>
|
55
58
|
|
56
59
|
browser_obj
|
@@ -88,7 +91,8 @@ module PWN
|
|
88
91
|
browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
89
92
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
90
93
|
)
|
91
|
-
|
94
|
+
browser = browser_obj[:browser]
|
95
|
+
puts browser.public_methods
|
92
96
|
|
93
97
|
browser_obj = #{self}.search(
|
94
98
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/hacker_one.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://www.hackerone.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -34,17 +35,19 @@ module PWN
|
|
34
35
|
username = opts[:username].to_s.scrub.strip.chomp
|
35
36
|
password = opts[:password]
|
36
37
|
|
38
|
+
browser = browser_obj[:browser]
|
39
|
+
|
37
40
|
if password.nil?
|
38
41
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
39
42
|
else
|
40
43
|
password = opts[:password].to_s.scrub.strip.chomp
|
41
44
|
end
|
42
45
|
|
43
|
-
|
46
|
+
browser.goto('https://hackerone.com/users/sign_in')
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
browser.text_field(name: 'user[email]').wait_until(&:present?).set(username)
|
49
|
+
browser.text_field(name: 'user[password]').wait_until(&:present?).set(password)
|
50
|
+
browser.button(name: 'commit').click!
|
48
51
|
|
49
52
|
browser_obj
|
50
53
|
rescue StandardError => e
|
@@ -58,8 +61,10 @@ module PWN
|
|
58
61
|
|
59
62
|
public_class_method def self.logout(opts = {})
|
60
63
|
browser_obj = opts[:browser_obj]
|
61
|
-
|
62
|
-
browser_obj
|
64
|
+
|
65
|
+
browser = browser_obj[:browser]
|
66
|
+
browser.i(class: 'icon-arrow-closure').click!
|
67
|
+
browser.link(index: 16).click!
|
63
68
|
|
64
69
|
browser_obj
|
65
70
|
rescue StandardError => e
|
@@ -96,7 +101,8 @@ module PWN
|
|
96
101
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
97
102
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
98
103
|
)
|
99
|
-
|
104
|
+
browser = browser_obj[:browser]
|
105
|
+
puts browser.public_methods
|
100
106
|
|
101
107
|
browser_obj = #{self}.login(
|
102
108
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/linkedin.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://www.linkedin.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -34,17 +35,19 @@ module PWN
|
|
34
35
|
username = opts[:username].to_s.scrub.strip.chomp
|
35
36
|
password = opts[:password]
|
36
37
|
|
38
|
+
browser = browser_obj[:browser]
|
39
|
+
|
37
40
|
if password.nil?
|
38
41
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
39
42
|
else
|
40
43
|
password = opts[:password].to_s.scrub.strip.chomp
|
41
44
|
end
|
42
45
|
|
43
|
-
|
46
|
+
browser.goto('https://www.linkedin.com/uas/login')
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
browser.text_field(name: 'session_key').wait_until(&:present?).set(username)
|
49
|
+
browser.text_field(name: 'session_password').wait_until(&:present?).set(password)
|
50
|
+
browser.button(name: 'signin').click!
|
48
51
|
|
49
52
|
browser_obj
|
50
53
|
rescue StandardError => e
|
@@ -58,8 +61,10 @@ module PWN
|
|
58
61
|
|
59
62
|
public_class_method def self.logout(opts = {})
|
60
63
|
browser_obj = opts[:browser_obj]
|
61
|
-
|
62
|
-
browser_obj
|
64
|
+
|
65
|
+
browser = browser_obj[:browser]
|
66
|
+
browser.button(id: 'nav-settings__dropdown-trigger').wait_until(&:present?).click!
|
67
|
+
browser.link(index: 14).wait_until(&:present?).click!
|
63
68
|
|
64
69
|
browser_obj
|
65
70
|
rescue StandardError => e
|
@@ -96,7 +101,8 @@ module PWN
|
|
96
101
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
97
102
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
98
103
|
)
|
99
|
-
|
104
|
+
browser = browser_obj[:browser]
|
105
|
+
puts browser.public_methods
|
100
106
|
|
101
107
|
browser_obj = #{self}.login(
|
102
108
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/pandora.rb
CHANGED
@@ -15,7 +15,8 @@ module PWN
|
|
15
15
|
public_class_method def self.open(opts = {})
|
16
16
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
17
17
|
|
18
|
-
browser_obj
|
18
|
+
browser = browser_obj[:browser]
|
19
|
+
browser.goto('https://www.pandora.com')
|
19
20
|
|
20
21
|
browser_obj
|
21
22
|
rescue StandardError => e
|
@@ -34,17 +35,19 @@ module PWN
|
|
34
35
|
username = opts[:username].to_s.scrub.strip.chomp
|
35
36
|
password = opts[:password]
|
36
37
|
|
38
|
+
browser = browser_obj[:browser]
|
39
|
+
|
37
40
|
if password.nil?
|
38
41
|
password = PWN::Plugins::AuthenticationHelper.mask_password
|
39
42
|
else
|
40
43
|
password = opts[:password].to_s.scrub.strip.chomp
|
41
44
|
end
|
42
45
|
|
43
|
-
|
46
|
+
browser.goto('https://www.pandora.com/account/sign-in')
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
browser.text_field(id: 'login_username').wait_until(&:present?).set(username)
|
49
|
+
browser.text_field(id: 'login_password').wait_until(&:present?).set(password)
|
50
|
+
browser.button(text: 'Log In').click!
|
48
51
|
|
49
52
|
browser_obj
|
50
53
|
rescue StandardError => e
|
@@ -58,8 +61,10 @@ module PWN
|
|
58
61
|
|
59
62
|
public_class_method def self.logout(opts = {})
|
60
63
|
browser_obj = opts[:browser_obj]
|
61
|
-
|
62
|
-
browser_obj
|
64
|
+
|
65
|
+
browser = browser_obj[:browser]
|
66
|
+
browser.img(alt: 'Account Menu').wait_until(&:present?).click!
|
67
|
+
browser.span(text: 'Sign Out').wait_until(&:present?).click!
|
63
68
|
|
64
69
|
browser_obj
|
65
70
|
rescue StandardError => e
|
@@ -96,7 +101,8 @@ module PWN
|
|
96
101
|
browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
97
102
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
98
103
|
)
|
99
|
-
|
104
|
+
browser = browser_obj[:browser]
|
105
|
+
puts browser.public_methods
|
100
106
|
|
101
107
|
browser_obj = #{self}.login(
|
102
108
|
browser_obj: 'required - browser_obj returned from #open method',
|
data/lib/pwn/www/pastebin.rb
CHANGED
@@ -13,7 +13,8 @@ module PWN
|
|
13
13
|
public_class_method def self.open(opts = {})
|
14
14
|
browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
|
15
15
|
|
16
|
-
browser_obj
|
16
|
+
browser = browser_obj[:browser]
|
17
|
+
browser.goto('https://pastebin.com')
|
17
18
|
|
18
19
|
browser_obj
|
19
20
|
rescue StandardError => e
|
@@ -27,7 +28,9 @@ module PWN
|
|
27
28
|
|
28
29
|
public_class_method def self.onion(opts = {})
|
29
30
|
browser_obj = opts[:browser_obj]
|
30
|
-
|
31
|
+
|
32
|
+
browser = browser_obj[:browser]
|
33
|
+
browser.goto('http://lw4ipk5choakk5ze.onion')
|
31
34
|
|
32
35
|
browser_obj
|
33
36
|
rescue StandardError => e
|
@@ -64,7 +67,8 @@ module PWN
|
|
64
67
|
browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
|
65
68
|
proxy: 'optional - scheme://proxy_host:port || tor'
|
66
69
|
)
|
67
|
-
|
70
|
+
browser = browser_obj[:browser]
|
71
|
+
puts browser.public_methods
|
68
72
|
|
69
73
|
browser_obj = #{self}.onion(
|
70
74
|
browser_obj: 'required - browser_obj returned from #open method'
|